Petri net-based optimal one-wafer cyclic scheduling of treelike hybrid multi-cluster tools

ABSTRACT

Since single and dual-arm tools behave differently, it is difficult to coordinate their activities in a hybrid multi-cluster tool that is composed of both single- and dual-arm tools. Aiming at finding an optimal one-wafer cyclic schedule for a treelike hybrid multi-cluster tool whose bottleneck tool is process-bound, the present work extends a resource-oriented Petri net to model such system. By the developed Petri net model, to find a one-wafer cyclic schedule is to determine robot waiting times. By doing so, it is shown that, for any treelike hybrid multi-cluster tool whose bottleneck tool is process-bound, there is always a one-wafer cyclic schedule. Then, computationally efficient algorithms are developed to obtain the minimal cycle time and the optimal one-wafer cyclic schedule. Examples are given to illustrate the developed method.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application No. 62/221,038, filed on Sep. 20, 2015, which is incorporated by reference herein in its entirety.

LIST OF ABBREVIATIONS

BM buffer module

FP fundamental period

EST extended sub-tree

LB lower bound

O²CS optimal one-wafer cyclic schedule

OSLB one-wafer cyclic schedule achieving the LB of cycle time

PM process module

PN Petri net

ST sub-tree

BACKGROUND Field of the Invention

The present invention generally relates to scheduling a treelike hybrid multi-cluster tool. In particular, the present invention relates to a method for generating an optimal one-wafer cyclic schedule with minimal cycle time for this multi-cluster tool when no one-wafer cyclic schedule that achieves a LB of cycle time exists.

LIST OF REFERENCES

There follows a list of references that are occasionally cited in the specification. Each of the disclosures of these references is incorporated by reference herein in its entirety.

-   W. K. Chan, J. G. Yi, and S. W. Ding, “On the optimality of one-unit     cycle scheduling of multi-cluster tools with single-blade robots,”     Proceedings of 2007 IEEE International Conference on Automation     Science and Engineering, pp. 392-397, Scottsdale, USA, 2007. -   W. K. Chan, J. G. Yi, and S. W. Ding, “Optimal Scheduling of     Multi-cluster Tools with Constant Robot Moving Times, Part I:     Two-Cluster Analysis,” IEEE Transactions on Automation Science and     Engineering, vol. 8, no. 1, pp. 5-16, 2011a. -   W. K. Chan, J. G. Yi, S. W. Ding, and D. Z. Song, “Optimal     Scheduling of Multi-cluster Tools with Constant Robot Moving Times,     Part II: Tree-Like Topology Configurations,” IEEE Transactions on     Automation Science and Engineering, vol. 8, no. 1, pp. 17-28, 2011b. -   S. W. Ding, J. G. Yi, and M. T. Zhang, “Multicluster Tools     Scheduling: an Integrated Event Graph and Network Model Approach,”     IEEE Transactions on Semiconductor Manufacturing, vol. 19, no. 3,     pp. 339-351, 2006. -   J.-H. Kim, T.-E. Lee, H.-Y. Lee, and D.-B. Park, “Scheduling     analysis of timed-constrained dual-armed cluster tools,” IEEE     Transactions on Semiconductor Manufacturing, vol. 16, no. 3,     521-534, 2003. -   T.-E. Lee, H.-Y. Lee, and Y.-H. Shin, “Workload balancing and     scheduling of a single-armed cluster tool,” Proceedings of the 5th     APIEMS Conference, Gold Coast, Australia, pp. 1-15, 2004. -   M.-J. Lopez and S.-C. Wood, “Systems of multiple cluster tools     configuration, reliability, and performance,” IEEE Transactions on     Semiconductor Manufacturing, vol. 16, no. 2, pp. 170-178, 2003. -   T. L. Perkinson, R. S. Gyurcsik, and P. K. MacLarty, “Single-wafer     cluster tool performance: An analysis of the effects of redundant     chambers and revisitations sequences on throughput,” IEEE     Transactions on Semiconductor Manufacturing, vol. 9, no. 3, pp.     384-400, 1996. -   T. L. Perkinson, P. K. MacLarty, R. S. Gyurcsik, and R. K. Cavin,     III, “Single-wafer cluster tool performance: An analysis of     throughput,” IEEE Transactions on Semiconductor Manufacturing, vol.     7, no. 3, pp. 369-373, 1994. -   S. Sechi, C. Sriskandarajah, G. Sorger, J. Blazewicz, and W. Kubiak,     “Sequencing of parts and robot moves in a robotic cell,”     International Journal of Flexible Manufacturing Systems, vol. 4, no.     3-4, pp. 331-358, 1992. -   S. Venkatesh, R. Davenport, P. Foxhoven, and J. Nulman, “A steady     state throughput analysis of cluster tools: Dual-blade versus     single-blade robots,” IEEE Transactions on Semiconductor     Manufacturing, vol. 10, no. 4, pp. 418-424, 1997. -   N. Q. Wu, “Necessary and Sufficient Conditions for Deadlock-free     Operation in Flexible Manufacturing Systems Using a Colored Petri     Net Model,” IEEE Transactions on Systems, Man, and Cybernetics, Part     C, vol. 29, no. 2, pp. 192-204, 1999. -   N. Q. Wu, C. B. Chu, F. Chu, and M. C. Zhou, “A Petri net method for     schedulability and scheduling problems in single-arm cluster tools     with wafer residency time constraints,” IEEE Transactions on     Semiconductor Manufacturing, vol. 21, no. 2, pp. 224-237, 2008. -   N. Q. Wu, F. Chu, C. Chu, and M. Zhou, “Petri Net-Based Scheduling     of Single-Arm Cluster Tools With Reentrant Atomic Layer Deposition     Processes,” IEEE Transactions on Automation Science and Engineering,     vol. 8, no. 1, pp. 42-55, January 2011. -   N. Q. Wu, F. Chu, C. B. Chu, and M. C. Zhou, Petri net modeling and     cycle time analysis of dual-arm cluster tools with wafer revisiting,     IEEE Transactions on Systems, Man, & Cybernetics: Systems, vol. 43,     no. 1, pp. 196-207, 2013a. -   N. Q. Wu, M. C. Zhou, F. Chu, and C. B. Chu, “A Petri-net-based     scheduling strategy for dual-arm cluster tools with wafer     revisiting,” IEEE Transactions on Systems, Man, & Cybernetics:     Systems, vol. 43, no. 5, pp. 1182-1194, 2013b. -   N. Q. Wu and M. C. Zhou, “Avoiding deadlock and reducing starvation     and blocking in automated manufacturing systems based on a Petri net     model,” IEEE Transactions on Robotics and Automation, vol. 17, no.     5, pp. 658-669, 2001. -   N. Q. Wu and M. C. Zhou, System modeling and control with     resource-oriented Petri nets, CRC Press, Taylor & Francis Group, New     York, October 2009. -   N. Q. Wu and M. C. Zhou, “Analysis of wafer sojourn time in dual-arm     cluster tools with residency time constraint and activity time     variation,” IEEE Transactions on Semiconductor Manufacturing, vol.     23, no. 1, pp. 53-64, 2010a. -   N. Q. Wu and M. C. Zhou, “A closed-form solution for schedulability     and optimal scheduling of dual-arm cluster tools based on steady     schedule analysis,” IEEE Transactions on Automation Science and     Engineering, vol. 7, no. 2, pp. 303-315, 2010b. -   N. Q. Wu and M. C. Zhou, “Modeling, analysis and control of dual-arm     cluster tools with residency time constraint and activity time     variation based on Petri nets,” IEEE Transactions on Automation     Science and Engineering, vol. 9, no. 2, pp. 446-454, 2012a. -   N. Q. Wu and M. C. Zhou, “Schedulability analysis and optimal     scheduling of dual-arm cluster tools with residency time constraint     and activity time variation,” IEEE Transactions on Automation     Science and Engineering, vol. 9, no. 1, pp. 203-209, 2012b. -   F. J. Yang, N. Q. Wu, Y. Qiao, and M. C. Zhou, Petri net-based     optimal one-wafer cyclic scheduling of hybrid multi-cluster tools in     wafer fabrication, IEEE Transactions on Semiconductor Manufacturing,     vol. 27, no. 2, pp. 192-203, 2014a. -   F. J. Yang, N. Q. Wu, Y. Qiao, and M. C. Zhou, “Petri net-based     polynomially complex approach to optimal one-wafer cyclic scheduling     of hybrid multi-cluster tools in semiconductor manufacturing,” IEEE     Transactions on System, Man, & Cybernetics: System, vol. 44, no. 12,     pp. 1598-1610, 2014b. -   F. J. Yang, N. Q. Wu, Y. Qiao, and M. C. Zhou, “Finding One-wafer     Cyclic Schedule with Highest Productivity for Treelike Hybrid     Multi-Cluster Tools,” working paper, Macau University of Science and     Technology, 2015. -   J. G. Yi, S. W. Ding, D. Z. Song, and M. T. Zhang, “Steady-State     Throughput and Scheduling Analysis of Multi-Cluster Tools for     Semiconductor Manufacturing: A Decomposition Approach,” IEEE     Transactions on Automation Science and Engineering, vol. 5, no. 2,     pp. 321-336, 2008. -   M. C. Zhou and K. Venkatesh, Modeling, simulation and control of     flexible manufacturing systems: Petri net approach, World     Scientific, Singapore, 1998. -   Q. H. Zhu, N. Q. Wu, Y. Qiao, and M. C. Zhou, “Petri net-based     optimal one-wafer scheduling of single-arm multi-cluster tools in     semiconductor manufacturing,” IEEE Transactions on Semiconductor     Manufacturing, vol. 26, no. 4, 578-591, 2013. -   Q. H. Zhu, N. Q. Wu, Y. Qiao, and M. C. Zhou, “Scheduling of     single-arm multi-cluster tools with wafer residency time constraints     in semiconductor manufacturing,” IEEE Transactions on Semiconductor     Manufacturing, vo. 28, no. 1, pp. 117-125, 2015. -   W. M. Zuberek, “Timed Petri nets in modeling and analysis of cluster     tools,” IEEE Transactions on Robotics Automation, vol. 17, no. 5,     pp. 562-575, October 2001.

There follows a list of patent(s) and patent application(s) that are occasionally cited in the specification.

-   D. Jevtic and S. Venkatesh, “Method and Apparatus for Scheduling     Wafer Processing within a Multiple Chamber Semiconductor Wafer     Processing Tool Having a Multiple Blade Robot,” U.S. Pat. No.     6,224,638 B1, May 1, 2001.

DESCRIPTION OF RELATED ART

As a kind of integrated equipment that implements single-wafer processing technology, cluster tools play a significant role in the semiconductor manufacturing industry [Yi et al., 2008; and Chan et al., 2007]. Generally, it integrates a wafer handling robot, two loadlocks, and a few process modules (PMs). A tool is called a single or dual-arm tool if its corresponding robot has one arm and two arms, respectively. The two loadlocks are for wafer cassette loading and unloading. Through them, raw wafers are loaded into the system with a cassette-by-cassette way and processed by PMs in a pre-specified order, called a recipe. At each step, they should stay in a PM for a certain of time to be processed and finally returns to the loadlock where it came from [Wu and Zhou, 2010b].

Multi-cluster tools are increasingly adopted to accommodate the industrial demands [Chan et al., 2007]. They are composed of several, individual cluster tools connected by buffering modules (BMs) with a linear or treelike topology. It is called a hybrid K-cluster tool if it contains K (≥2) individual cluster tools including both single and dual-arm tools. A treelike hybrid 9-cluster tool linked by BMs is illustrated in FIG. 1.

For effectively operating cluster tools, extensive research efforts have been made on the modeling and performance evaluation of them [Venkatesh et al., 1997; Perkinson et al., 1994 and 1996; Zuberek, 2001; Wu et al., 2011, 2013a, and 2013b; and Wu and Zhou, 2010a, 2012a, and 2012b]. These studies show that, with two loadlocks, a cluster tool often operates under a steady state. In the steady state, if the robot has idle time and processing time in PMs decides the cycle time of the system, it is process-bound. In practice, the robot activity time can be treated as a constant and is much shorter than wafer processing time [Kim et al., 2003]. Hence, often a tool is process-bound. Under such a case, for dual-arm tools, a swap strategy is effective [Venkatesh et al., 1997], while for single-arm ones, a backward strategy is optimal [Lee et al., 2004; Lopez and Wood, 2003].

For scheduling a multi-cluster tool, Jevtic [2001] proposes a heuristic algorithm. However, it is hard to evaluate its performance. By ignoring the robot moving time, the multi-cluster tool is modeled by an event graph combined with a network model in [Ding et al., 2006]. Then, the method finds all optimal periodical schedules based on a simulation approach. In [Yi et al., 2008], a decomposition method is presented. With the robot moving time taking into account, a polynomial algorithm is proposed to find an optimal cyclic schedule for both single-arm 2-cluster tools and m-serial-cluster tool in a treelike M-cluster tool with M>m. 2, in [Chan et al., 2011a and 2011b]. An m-serial-cluster tool is an m-cluster tool with linear topology. By the methods proposed in [Chan et al., 2011a and 201 ib], generally, the obtained cyclic schedule is a multi-wafer schedule, i.e. more than one wafer is produced during every period [Sechi et al., 1992].

Due to that a one-wafer cyclic schedule is easy to understand, implement, and control, it is the most desired one in practice, assuming that the same maximum throughput is achieved. A multi-cluster tool with its bottleneck tool being process-bound is said to be process-dominant in [Zhu et al., 2013, 2015]. It is shown that, for a process-dominant single-arm multi-cluster tool with linear topology, there is always a one-wafer cyclic schedule and a polynomial method is proposed to find an optimal one-wafer cyclic schedule (O²CS), in [Zhu et al., 2013]. A multi-cluster tool composed of both single and dual-arm tools is called a hybrid multi-cluster tool. Similar to a process-dominant linear single-arm multi-cluster tool, there is a one-wafer cyclic schedule for process-dominant linear hybrid multi-cluster tools and efficient algorithms are presented to find an O²CS in [Yang et al., 2014a and 2014b]. Structurally, a treelike hybrid multi-cluster tool is much more complex than a linear multi-cluster tool and thus it is more challenging to schedule. In our previous work [Yang et al., 2015], conditions under which a one-wafer cyclic schedule exists to reach the lower bound (LB) of cycle time for a process-dominant treelike hybrid K-cluster tool are presented, and also, an efficient algorithm is proposed to find such a schedule if it exists. However, if it does not exist, it is open that whether there is an O²CS and how it can be found if yes.

There is a need in the art to determine if the O²CS exists and, if it exists, to develop and apply the O²CS for scheduling a treelike hybrid multi-cluster tool.

SUMMARY OF THE INVENTION

An aspect of the present invention is to provide a computer-implemented method for scheduling a treelike hybrid K-cluster tool to generate a one-wafer cyclic schedule. The treelike hybrid K-cluster tool has K single-cluster tools denoted as C₁, C₂, . . . , C_(K), with C₁ being a head tool of the treelike hybrid K-cluster tool. The single-cluster tool C_(k), k∈

_(K), has a robot R_(k) for wafer handling. The method comprises given a value of cycle time, generating a part of the schedule for a section of the K-cluster tool by performing a generating algorithm where the section of the K-cluster tool is either an EST or a ST.

The generating algorithm for EST_(k) or ST_(k), with C_(i) being a downstream adjacent tool of C_(k) and with Θ being the given value of cycle time for EST_(i), ST_(i) or B_(i), comprises the following steps. The notations and symbols used in the steps are defined hereinafter in the specification.

In Step (S1), perform Steps (S1.1), (S1.2) and (S1.3) if Θ is not an optimal cycle time for EST_(k) or ST_(k), and if k∉F and A_(i(n[i]))≠0.

In Step (S1.1), calculate Δ_(m)'s for m∈S_(i) according to Δ_(m) =A _(m(n[m]))/Σ_(p∈S) _(m) B[p] if m>i and

$\Delta_{m} = {\Delta_{i} = \left\{ \begin{matrix} {{\Phi_{i}\left( {S,S} \right)} - A_{i{({n{\lbrack i\rbrack}})}}} & {{{for}\mspace{14mu}{Condition}\mspace{14mu} 1},} & \; \\ \frac{\Phi_{i}\left( {S,S} \right)}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}} & {{{for}\mspace{14mu}{Condition}\mspace{14mu} 2},} & {{{{if}\mspace{14mu} m} = i},} \\ \frac{\Phi_{i}\left( {D,S} \right)}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}} & {{{for}\mspace{14mu}{Condition}\mspace{14mu} 3},} & \; \end{matrix} \right.}$ where Condition 1 is that

$0 < A_{i{({n{\lbrack i\rbrack}})}} \leq \frac{\sum_{p \in S_{i}}{{B\lbrack p\rbrack} \times {\Phi_{i}\left( {S,S} \right)}}}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}}$ and S-S case is considered, Condition 2 is that

$A_{{({i + 1})}{({n{\lbrack{i + 1}\rbrack}})}} \geq \frac{\sum_{p \in S_{i}}{{B\lbrack p\rbrack} \times {\Phi_{i}\left( {S,S} \right)}}}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}}$ and S-S case is considered, and Condition 3 is that D-S case is considered.

In Step (S1.2), check whether Δ=min{Δ_(p)|p∈S_(i)}=Δ_(I) is satisfied. If it is satisfied, then perform Steps (S1.2.1), (S1.2.2) and (S1.2.3) with:

Y=Φ_(i)(S,S)−A_(i(n[i])) when Condition 1 is satisfied;

$Y = \frac{\Phi_{i}\left( {S,S} \right)}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}}$ when Condition 2 is satisfied; and

$Y = \frac{\Phi_{i}\left( {D,S} \right)}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}}$ when Condition 3 is satisfied.

Step (S1.2.1) is as follows. In EST_(i) or B_(i), for p∉S_(i), if p∉L, then set ω_(p((b[p]) _(_) ¹⁾⁻¹⁾=A_(p((b[p]) _(_) ¹⁾⁻¹⁾+Δ, else set ω_(p0)=A_(p0)+Δ.

Step (S1.2.2) is as follows. In EST_(i) or B_(i), if p∈S_(i) and p∉F, then set: ω_(pj) =A _(pj) +Y for j∈D[p], or for j∈

_(n[p]) \{n[p]} if p∈L; ω_(p((b[p]) _(_) ¹⁾⁻¹⁾ =A _(p((b[p]) _(_) ¹⁾⁻¹⁾+Σ_(q∈S) _(p) B[q]×A _(i(n[i]))/(Σ_(p∈S) _(i) B[p])+Δ, or ω_(p0) =A _(p0)+Δ if p∈L; and ω_(p(n[p])) =A _(p(n[p]))−Σ_(q∈S) _(p) B[q]×Y.

Step (S1.2.3) is as follows. In EST_(i), if p∈S_(i) and p∈F, then set: ω_(pj) =A _(pj) +Y,j∈D[p];

ω_(p((b[p]_1) − 1)) = A_(p((b[p]_1) − 1)) + ∑_(q ∈ S_(p_1))B[q] × Y + Δ; ω_(p((b[p]_d) − 1)) = A_(p((b[p]_d) − 1)) + (∑_(q ∈ S_(p_d))B[q] + 1) × Y, d ∈ {2, 3, …  , f[p]}; and ω_(p(n[p])) =A _(p(n[p]))−Σ_(q∈S) _(p) B[q]×Y;

In Step (S1.3), if Δ=min{Δ_(p)|p∈S_(i)}=Δ_(f)≠Δ_(i), then perform Steps (S1.2.1), (S1.2.2) and (S1.2.3) with Y=Δ_(f) followed by repeating Steps (S1.1), (S1.2) and (S1.3).

Preferably, the generating algorithm further comprises Steps (S2), (S3), (S3.1), (S3.2) and S(3.3) as follows.

Step (S.2) is performed if Θ is not an optimal cycle time for EST_(k) or ST_(k), and if k∉F and Δ_(i(n[i]))=0. If this condition is satisfied, then Θ is updated with a value computed by Θ+Δ_(i)=Θ+Φ_(l)(S, S) for S-S case, or by Φ_(i)(D, S) for D-S case. Based on the updated value of Θ, the robot waiting times for the robots in EST_(k) or ST_(k) are recomputed, so that the part of the schedule for EST_(k) or ST_(k) is generated and thereby the performing of the generating algorithm is completed.

In Step (S.3), it is first checked if Θ is not an optimal cycle time for EST_(k) or ST_(k), and if k∈F holds. If both answers are yes, then Steps (S3.1), (S3.2) and (S3.3) are performed.

Step (S3.1) is to find the optimal cycle time Θ+Δ_(q) for C_(k) with EST_(k) _(_) _(q) or ST_(k) _(_) _(q), q∈

_(f[k]), by performing Steps (S.1) and (S.2), where EST_(k) _(_) _(q) or ST_(k) _(_) _(q) is the EST or the ST having the single-cluster tool C_(i) and a branch thereof, B_(i) _(_) _(q).

Step (S3.2) is to update Θ with a value computed by Θ+max{Δ₁, Δ₂, . . . , Δ_(f[k])}.

Step (S3.3) is to find the part of the schedule for ST_(k) by recomputing the robot waiting times with the updated cycle time Θ.

With the generating algorithm, one can find an O²CS for the K-cluster tool as follows. The O²CS for the smallest ST, say, ST_(j) with j=max_(l∈F){l} and its ESTs is obtained first by the generating algorithm. Afterwards, the ST that is larger than ST_(j) is processed with the generating algorithm. This process is continued until it is done for the K-cluster tool to obtain a complete O²CS.

It follows that the method as disclosed herein may advantageously include a procedure as follows. First identify, in the treelike hybrid K-cluster tool, ST_(j) with j=max_(l∈F){l}, and one or more ESTs of ST_(j). The one or more ESTs are EST_(j−1), EST_(j−2) down to EST_(i) such that an upstream adjacent tool of C_(i) is a fork tool. A first part of the schedule for ST_(j) is determined by performing the generating algorithm. Then a second part of the schedule for EST_(j−1) is determined based on the first part of the schedule. Repeat the determination of one part of the schedule EST_(j−m) based on a determined part of the schedule for EST_(j−m+1) until the one or more ESTs are scheduled.

Other aspects of the present invention are disclosed as illustrated by the embodiments hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a treelike hybrid 9-cluster tool as an example for illustration.

FIG. 2 depicts a PN model for a single-arm tool C_(i) as an illustrative example.

FIG. 3 depicts, as an example, a PN model for a dual-arm tool C_(i).

FIG. 4 depicts examples of a PN model for the BM between C_(k) and C_(i) for: (a) a D-D case; (b) a S-D case, (c) a D-S case; and (d) a S-S case.

FIG. 5 provides an illustration of the proof of Theorem 2.

FIG. 6 depicts a Gantt chart for the optimal schedule of Example 1.

FIG. 7 depicts a Gantt chart for the optimal schedule of Example 2.

DETAILED DESCRIPTION

Based on the results obtained in [Yang et al., 2015], the present work confirms that an O²CS exists for a treelike hybrid multi-cluster tool. To do so, a Petri net (PN) model is developed to describe the dynamic behavior of the system. By this model, one shows that there is always a one-wafer cyclic schedule. Then, algorithms are designed to obtain the O²CS by setting the robot waiting time. The method as disclosed herein is shown to be computationally efficient.

Hereinafter, the notation

_(K), K being a positive integer, denotes a set containing positive integers from 1 to K, i.e.

_(K)={1, 2, . . . , K}. Let Ω_(K)={0}∪

_(K).

A. Petri Net Modeling

By following Chan et al. [2011a and b], for the system, one assumes that: 1) the capacity of a BM is one and has no processing function; 2) only one PM is configured for each step, that is, there is no parallel module, and only one wafer can be processed in a PM at a time; 3) only one type of wafers that have the identical recipe is processed, and they visit a PM only once except entering a BM at least twice; 4) the activity time is a known constant; and 5) in each individual tool except the fork and leaf (to be defined later) tool, besides BM(s), there is at least one PM. The fork tool may have no PM and the leaf tool has at least two PMs.

Let C_(i), i∈

_(K), denote the i-th cluster tool, where C₁ that has two loadlocks is called the head tool; C_(i), i≠1, is called a leaf tool if it connects to only one tool; and if C_(i), i∈

_(K), connects to at least three adjacent tools, it is called a fork tool. Denote R_(i) as the robot in C_(i). As shown in FIG. 1, C₃, C₇, and C₉ are leaf tools, while C₂ and C₅ are fork ones. Let L={i|C_(i) is a leaf tool} denote the index set of leaf tools. The tools are numbered such that, for any two adjacent tools C_(k) and C_(i), k∉L and i∈{1}, with C_(k)/C_(i) being the upstream/downstream one, one has i>k [Chan et al. 2011b]. However, k and i may not be in a consecutive order.

A BM connecting C_(k) and C_(i) is seen as the outgoing module (OM) for C_(k) and the incoming module (IM) for C_(i), respectively, and this IM is numbered as the Step 0 for C_(i). Let n[i] be the index for the last step in C_(i), i∈

_(K). Then, there are n[i]+1 steps in C_(i), including the OM(s) and IM(s). Let f[i], 1≤f[i]≤n[i], denote the number of OM(s) in C_(i), i∉L. If f[i]>1, C_(i) is a fork tool; otherwise if f[i]=1, it is not. Let PS_(ij) denote Step j (except the BM(s)) in C_(i), i∈

_(K) and j∈

_(n[i]), with PS₁₀ denoting the loadlocks in C₁. Further, let PS_(i(b[i]) _(_) ₁₎, PS_(i(b[i]) _(_) ₂₎, . . . , and PS_(i(b[i]) _(_) _(f[i])) with b[i]_1<b[i]_2< . . . <b[i]_f[i], denote the OM(s). Note that b[i]_1, b[i]_2, . . . and b[i]_f[i] are not necessary in a consecutive order, in other words, b[i]_2=b[i]_1+1 may not hold. The IM for C_(i) is denoted as PS_(i0). Then, the n[i]+1 steps in C_(i) are denoted as PS_(i0), PS_(i1), . . . , PS_(i(b[i]) _(_) ₁₎, . . . , PS_(i(b[i]) _(_) ₂₎, . . . , PS_(i(n[i])), respectively. Notice that b[i]_1=1 if it is Step 1 and b[i]_f[i]=n[i] if it is the last step. By this way, the route of a wafer in FIG. 1 can be denoted as: PS₁₀→PS₁₁→ . . . →PS_(1(b[1]) _(_) ₁₎ (PS₂₀)→PS_(2(b[2]) _(_) ₁₎ (PS₃₀)→PS₃₁→ . . . →PS₃₀ (PS_(2(b[2]) _(_) ₁₎)→ . . . →PS_(2(b[2]) _(_) ₂₎ (PS₄₀)→ . . . →PS_(4(b[4]) _(_) ₁₎ (PS₅₀)→ . . . →PS₅₀ (PS_(4(b[4]) _(_) ₁₎)→ . . . →PS₄₀ (PS_(2(b[2]) _(_) ₂₎)→ . . . →PS₂₀ (PS_(1(b[1]) _(_) ₁₎)→PS₁₀.

The present work extends the resource-oriented PN developed in [Wu, 1999; and Wu and Zhou, 2001 and 2009] to model a treelike hybrid K-cluster tool. The basic concept of the PN used in the present work is based on [Zhou and Venkatesh, 1998; Wu, 1999; and Wu and Zhou 2009]. As a kind of finite capacity PN, it is defined as PN=(P, T, I, O, M,

), where P={p₁, p₂, . . . , p_(m)} is a finite set of places and T={t₁, t₂, . . . , t_(n)} is a finite set of transitions; I/O is the input/output functions; M(p) is a marking representing the number of tokens in place p with M₀(p) being the initial marking in p; and

is a capacity function with

(p) being the largest number of tokens that p can hold at a time. Transition t's preset is the set of all input places to t, namely, ^(●)t={p: p∈P and I(p, t)>0}. Its postset is the set of all output places from t, namely, t^(●)={p: p∈P and O(p, t)>0}. Similarly, one has p's preset ^(●)p={t∈T: O(p, t)>0} and postset p^(●)={t∈T: I(p, t)>0}. For the transition enabling and firing rules, one can refer to [Wu, 1999; Wu and Zhou, 2001 and 2010c].

A.1. PN for Hybrid K-Cluster Tools

To model a hybrid K-cluster tool, one adopts the PN models developed in [Yang et al., 2015] with the backward and swap strategies for the single and dual-arm tool as shown in FIGS. 2 and 3, respectively. A brief introduction to them is presented for self-completeness as follows. Note that for convenience, a token and a wafer are often used without difference.

For C_(i), i∈

_(K), regardless of whether it is a single or dual-arm tool, transition x_(ij), j∈Ω_(n[i]), models R_(i)'s moving from Steps j to j+1 (or Step 0 if j=n[i]) with a wafer hold, and places r_(i) and p_(ij), model R_(i) and PS_(ij), j∈Ω_(n[i]), respectively. Note that

(p_(ij))=1 indicating that there is only one PM for a step; and

(r_(i))=1 if C_(i) is a single-arm tool and

(r_(i))=2 if C_(i) is a dual-arm tool. For a single-arm tool C_(i), i∈

_(K), as shown in FIG. 2, place q_(ij) with

(q_(ij))=1 models R_(i)'s waiting before unloading a wafer (token) from p_(ij), j∈Ω_(n[i]). Places d_(ij) and z_(ij) with

(d_(ij))=

(z_(ij))=1 model that R_(i) holds a wafer for moving from Steps j to j+1 (or Step 0 if j=n[i]) and loading a wafer into p_(ij), j∈Ω_(n[i]), respectively. Transitions u_(ij) and t_(ij) model that R_(i) removes a wafer from p_(ij), and drops a wafer into p_(ij), j∈Ω_(n[i]), respectively. Transition y_(ij), j∈Ω_(n[i])\{0, 1}, models R_(i)'s moving from Steps j+2 to j (or to n[i]−1 if j=0, or to n[i] if j=1), without carrying a wafer.

For a dual-arm tool C_(i), i∈

_(K), as shown in FIG. 3, places d_(ij) and z_(ij) with

(d_(ij))=

(z_(ij))=1 model the state that a swap ends and R_(i)'s waiting before unloading a wafer from p_(ij), j∈Ω_(n[i]), respectively. Place q_(ij) with

(q_(ij))=2 models that both arms of R_(i) hold a wafer and wait during swap at p_(ij), j∈Ω_(n[i]). Transitions t_(ij) and u_(ij) model R_(i)'s loading and unloading a wafer into and from p_(ij), j∈Ω_(n[i]), respectively. By firing u_(ij), two tokens enter q_(ij), implying that both arms hold a wafer and wait. For more details, the readers can refer to [Wu et al., 2008] and [Wu and Zhou, 2010b].

For a BM that connects C_(k) and C_(i), k∉L, i∉{1}, with C_(k) being the upstream one, there are four different cases:

1) both C_(k) and C_(i) are dual-arm tools (herein referred to as a D-D case in short);

2) C_(k) is a single-arm tool and C_(i) is a dual-arm one (herein referred to as a S-D case in short);

3) C_(k) is a dual-arm tool and C_(i) is a single-arm one (herein referred to as a D-S case in short); and

4) both are single-arm tools (herein referred to as a S-S case in short).

As the BM linking C_(k) and C_(i) can be treated as a step denoted by PS_(k(b[k]) _(_) _(q)) for C_(k), or the q-th OM, 1≤q≤f[k], in C_(k), and it is also seen as PS_(i0) in C_(i). Hence, this BM is modeled by p_(k(b[k]) _(_) _(q)) and p_(i0) for C_(k) and C_(i), respectively, with p_(k(b[k]) _(_) _(q))=p_(i0) and

(p_(k(b[k]) _(_) _(q)))=

(p_(i0))=1. The PN models of the four cases are shown in FIG. 4. For the S-S case, Step b[k]_q for C_(k) is modeled by z_(k(b[k]) _(_) _(q)), t_(k(b[k]) _(_) _(q)), p_(k(b[k]) _(_) _(q)), q_(k(b[k]) _(_) _(q)), u_(k(b[k]) _(_) _(q)), and d_(k(b[k]) _(_) _(q)) together with arcs (z_(k(b[k]) _(_) _(q)), t_(k(b[k]) _(_) _(q))), (t_(k(b[k]) _(_) _(q)), p_(k(b[k]) _(_) _(q))), q_(k(b[k]) _(_) _(q)), u_(k(b[k]) _(_) _(q))), (q_(k(b[k]) _(_) _(q)), u_(k(b[k]) _(_) _(q)), and (u_(k(b[k]) _(_) _(q)), d_(k(b[k]) _(_) _(q))). Step 0 for C_(i) is modeled by z_(i0), t_(i0), p_(i0), q_(i0), u_(i0), and d_(i0) together with arcs (z_(i0), t_(i0)), (t_(i0), p_(i0)), (p_(i0), u_(i0)), (q_(i0), u_(i0)), and (u_(i0), d_(i0)) as shown in FIG. 4(d). Similarly, one can obtain the models for the other cases.

With the developed PN, the initial marking M₀ of the PN model can be set by putting a V-token representing a virtual wafer (not real one) as follows.

For C₁, set M₀(p₁₀)=n, representing that there are always wafers to be processed. If C₁ is a single-arm tool, set M₀(r₁)=0; M₀(p_(1(b[i]) _(_) ₁₎)=0 and M₀(p_(1j))=1, j∈

_(n[1])\{b[1]_1}; M₀(z_(1j))=M₀(d_(1j))=0, j∈Ω_(n[1]); M₀(q_(1j))=0, j∈Ω_(n[1])\{(b[1]_1)−1}, and M₀(q_(1((b[1]) _(_) ¹⁾⁻¹⁾)=1, implying that R₁ is waiting at PS_(1((b[1]) _(_) ¹⁾⁻¹⁾) for unloading a wafer there. If C₁ is a dual-arm tool, set M₀(r₁)=1; M₀(p_(1j))=1, j∈

_(n[1]); M₀(q_(ij))=M₀(d_(1j))=0, j∈Ω_(n[1]); M₀(z_(1j))=0, j∈Ω_(n[1])\{[b1]_1} and M₀(z_(1(b[1]) _(_) ₁₎)=1, implying that R₁ is waiting at PS_(1(b[i]) _(_) ₁₎ for unloading a wafer there.

For a single-arm tool C_(i), i∈

_(K)\{1}, M₀(r_(i))=0; M₀(z_(ij))=M₀(d_(ij))=0, j∈Ω_(n[i]); M₀(p_(i1))=0 and M₀(p_(ij))=1, j∈

_(n[i])\{1}; M₀(q_(ij))=0, j∈

_(n[i]), and M₀(q_(i0))=1, representing that R_(i) is waiting at PS_(i0) for unloading a wafer there. For a dual-arm tool C_(i), i∈

_(K)\{1}, set M₀(r_(i))=1; M₀(p_(ij))=1, j∈

_(n[i]); M₀(q_(ij))=M₀(d_(ij))=0, j∈Ω_([n]); M₀(z_(ij))=0, j∈

_(n[i]), and M₀(z_(i0))=1, representing that R_(i) is waiting at PS_(i0) for unloading a wafer there. It should be pointed out that, at M₀, for any adjacent C_(k) and C_(i), the token in p_(i0) is assumed to enable u_(k(b[k]) _(_) _(q)), but not u_(i0).

In FIG. 4, for place p_(i0) (p_(k(b[k]) _(_) _(q))), there are two output transitions u_(k(b[k]) _(_) _(q)) and u_(i0), leading to a conflict. However, a token entering p_(i0) by firing t_(k(b[k]) _(_) _(q)) should enable u_(i0), while the one entering p_(i0) by firing t_(i0) should enable u_(k(b[k]) _(_) _(q)). To avoid such a conflict, one introduces colors into the model. one first defines the color for the transition as follows.

Definition 1:

The color of a transition t_(i) is defined as C(t_(i))={c_(i)}.

By Definition 1, the colors for u_(i0) and u_(k(b[k]) _(_) _(q)) are c_(i0) and c_(k(b[k]) _(_) _(q)), respectively. Then, one can define the color for a token as follows.

Definition 2:

If a token in p∈^(●)t_(i) enables t_(i), it has the same color of t_(i), i.e. {c_(i)}.

With Definition 2, a token entering p_(i0) by firing t_(k(b[k]) _(_) _(q)) has color c_(i0) and enables u_(i0) only, and the token entering p_(i0) by firing t_(i0) has color c_(k(b[k]) _(_) _(q)) and enables u_(k(b[k]) _(_) _(q)) only. By this way, the PN becomes conflict-free. One more issue is that although the model for a dual-arm tool is deadlock-free, the model for a single-arm one is deadlock-prone [Yang et al. 2015]. A control policy defined in [Yang et al. 2015] is applied to solve this problem.

Definition 3 [Yang et al. 2015]:

In the PN model of a treelike hybrid K-cluster tool, for a single-arm tool C_(i), i∈

_(K), at marking M, y_(ij), j∈Ω_(n[i])\{n[i], (b[i]_q)−1} and q∈

_(f[i]), is control-enabled if M(p_(i(j+1)))=0; y_(i(n[i])) is control-enabled if transition t_(i1) has just been executed, and y_(i((b[i]) _(_) _(q)−1)) is control-enabled if transition t_(i((b[i]) _(_) _(q)+1)) has just been executed.

Thereafter, it is assumed that the PN is always controlled by the control policy given in Definition 3 such that the model is deadlock-free.

A.2. Modeling Activity Time

In the developed PN model, the time related activities are modeled by both transitions and places and time should be associated with both of them. As pointed out by Kim et al. [2003] and Lee and Lee [2006], for both single (S) and dual-arm (D) tools, the time for the robot to move from one step to another with or without carrying a wafer is identical, so is the time for the robot to unload/load a wafer from/into a PM. By following [Wu et al., 2008; and Wu and Zhou, 2010b], the activity time is modeled as shown in TABLE 1.

TABLE 1 Time duration associated with transitions and places for tool C_(i). Tran- sitions/ Time Tool Symbol places Action duration type λ_(i) t_(ij)/ R_(i) loads/unloads a wafer into/from λ_(i) S u_(ij) ∈ T Step j, j ∈ Ω_(n[i]) λ_(i) u_(ij) and R_(i) Swaps at Step j, j ∈ Ω_(n[i]) λ_(i) D t_(ij) ∈ T μ_(i) x_(ij) ∈ T R_(i) moves from a step to another μ_(i) Both with a wafer carried μ_(i) y_(ij) ∈ T R_(i) moves from a step to another μ_(i) S without a wafer carried α_(ij) p_(ij) ∈ P A wafer is been processed in p_(ij), j∈ α_(ij) Both Ω_(n[i]) τ_(ij) p_(ij) ∈ P A wafer is been processed and is ≥α_(ij) Both waiting in p_(ij) , j∈ Ω_(n[i]) ω_(ij) q_(ij) ∈ P R_(i) waits before unloading a wafer ≥0 S from Step j, j ∈ Ω_(n[i]) ω_(ij) z_(ij) ∈ P R_(i) waits at p_(ij), j∈ Ω_(n[i]) ≥0 D ω_(ij1) q_(ij) ∈ P R_(i) waits during swap at p_(ij), j∈ Ω_(n[i]) 0 D d_(ij) ∈ P No robot activity is associated 0 Both z_(ij) ∈ P No robot activity is associated 0 S

B. Timeliness Analysis of Individual Tools

With the above developed PN model, this section presents the temporal properties for individual tools to parameterize a schedule by robot waiting time. According to Wu et al. [2008], for a single-arm tool C_(i), i∈

_(K), the time taken for processing a wafer at Step j, j∈

_(n[i]), is θ_(ij)=α_(ij)+4λ_(i)+3μ_(i)+ω_(i(j−1))  (1) For Step 0, as α_(i0)=0, one has θ_(i0)=4λ_(i)+3μ_(i)+ω_(i(n[i]))  (2) With the robot waiting time being removed, the time needed for completing a wafer at Step j is ξ_(ij)=α_(ij)+4λ_(i)+3μ_(i) ,j∈Ω _(n[i]).  (3) To be feasible, a wafer should stay in PM_(ij) for τ_(ij) (≥α_(ij)) time units. By replacing α_(ij) with τ_(ij), the cycle time at Step j in C_(i) is computed by π_(ij)τ_(ij)=+4λ_(i)+3μ_(i)+ω_(i(j−1)) ,j∈N _(n[i])  (4) and π_(ij)=τ_(ij)+4λ_(i)+3μ_(i)+ω_(i(j0−1)) ,j∈Ω _(n[i]).  (4) The robot cycle time for a single-arm tool C_(i) is

$\begin{matrix} {\psi_{i} = {{{2\left( {{n\lbrack i\rbrack} + 1} \right)\left( {\lambda_{i} + \mu_{i}} \right)} + {\sum\limits_{j = 0}^{n{\lbrack i\rbrack}}\omega_{ij}}} = {\psi_{i\; 1} + \psi_{i\; 2}}}} & (6) \end{matrix}$ where ψ_(i1)=2(n[i]+1)(λ_(i)+μ_(i)) is the robot's activity time in a cycle without waiting and it is a known constant, while ψ_(i2)=Σ_(j=0) ^(n[i])ω_(ij) is the robot waiting time in a cycle.

For a dual-arm tool C_(i), i∈

_(K), according to Wu et al. [2010a], the time needed for processing a wafer at Step j, j∈Ω_(n[i]), is ξ_(ij)=α_(ij)+λ_(i).  (7) Similarly, by replacing α_(ij) with τ_(ij) in (7), the cycle time at Step j, j∈Ω_(n[i]), is π_(ij)=τ_(ij)+λ_(i).  (8) The robot cycle time for a dual-arm tool C_(i) is

$\begin{matrix} {\psi_{i} = {{{\left( {{n\lbrack i\rbrack} + 1} \right)\left( {\lambda_{i} + \mu_{i}} \right)} + {\sum\limits_{j = 0}^{n{\lbrack i\rbrack}}\omega_{ij}}} = {\psi_{i\; 1} + \psi_{i\; 2}}}} & (9) \end{matrix}$ where ψ_(i1)=(n[i]+1)(λ_(i)+μ_(i)) is the robot cycle time in a cycle without waiting and ψ_(i2)=Σ_(j=0) ^(n[i])ω_(ij) is the robot's waiting time in a cycle.

Since the production process is serial for each tool C_(i), i∈

_(K), the productivity for each step is identical. Thus, C_(i) should be scheduled such that π_(i)=π_(i0)=π_(i1)= . . . =π_(i(n[i]))=ψ_(i).  (10) Due to the fact that both π_(i) and ψ_(i) are functions of ω_(ij)'s, the schedule for each tool C_(i), i∈

_(K), is parameterized by robots' waiting time. With this observation in mind, the key for scheduling a treelike hybrid K-cluster tool is to determine ω_(ij)'s such that the activities of the multiple robots are coordinated to act in a paced way.

C. Scheduling the Overall System

C.1. Schedule Properties

Let Π_(i)=max{ξ_(i0), ξ_(i1), . . . , ξ_(i(n[i])), ψ_((n[i]))} denote the fundamental period (FP) of C_(i), i∈

_(K). If Π_(i)=max{ξ_(i0), ξ_(i1), . . . , ξ_(i(n[i]))}, C_(i) is process-bound. Let Π=max{Π₁, Π₂, . . . Π_(K)}=Π_(h), 1≤h≤K, or C_(h) is the bottleneck tool. Since, by assumption, a treelike hybrid K-cluster tool addressed here is process-dominant, C_(h) must be process-bound. Let Θ be the cycle time of the system. Then, with π_(i) being the cyclic time of C_(i), to obtain a one-wafer cyclic schedule for the system, each individual tool must have an identical cycle time that is equal to Θ for the entire system, i.e. Θ=π_(i) ≥Π,∀i∈

_(K).  (11) From [Yang et al. 2015], each individual tool can be scheduled to be paced, if and only if, for any adjacent pair C_(k) and C_(i), k∉L and i∉{1}, linked by PS_(k(b[k]) _(_) _(q)), 1≤q≤f[k], at any marking M, one has: 1) whenever R_(i) (R_(k)) is scheduled to load a token into p_(i0) (p_(k(b[k]) _(_) _(q))), M(p_(i0))=0 (M(p_(k(b[k]) _(_) _(q)))=0); and 2) whenever R_(i) (R_(k)) is scheduled to unload a token from p_(i0) (p_(k(b[k]) _(_) _(q))), M(p_(i0))=1 (M(p_(k(b[k]) _(_) _(q)))=1). In [Yang et al. 2015], the existence of a one-wafer cyclic schedule with the LB of cycle time, i.e. OSLB for short, is discussed and conditions under which an OSLB exists are derived. Algorithm is developed to find it if it exists. This work conducts a study on the case that there is no OSLB and presents a method to find an O²CS with Θ>Π. C.2. Optimal One-Wafer Cyclic Scheduling

For a process-dominant treelike hybrid K-cluster tool, the conditions under which an OSLB can be found are given as follows [Yang, et al., 2015].

Lemma 1:

For a process-dominant treelike hybrid K-cluster tool, an OSLB exists, if and only if, for any adjacent pair C_(k) and C_(i), k∉L, i∉{1}, connected by PS_(k(b[k]) _(_) _(q)), the following conditions are satisfied by determining ω_(kj)'s and ω_(il)'s, j∈Ω_(n[k]) and l∈Ω_(n[i]) such that: π_(kj)=π_(il) =Π,j∈Ω _(n[k]) and l∈Ω _(n[i]);  (12) if C_(k) and C_(i) are D-S case, Π−4λ_(k)≥4λ_(i)+3μ_(i)+ω_(i(n[i]));  (13) and if C_(k) and C_(i) are S-S case, Π−(4λ_(k)+3μ_(k)+ω_(k((b[k]) _(_) _(q)−1)))≥4λ_(i)+3μ_(i)+ω_(i(n[i]));  (14)

Based on Lemma 1, an efficient algorithm is developed in [Yang, et al., 2015] to test the existence of an OSLB and find it if it exists. In the sequel, for a process-dominant treelike K-cluster tool, one shows that there is always a one-wafer cyclic schedule and present an efficient algorithm to find the minimal cycle time Θ>Π and O²CS. In the following discussion, one focuses on the situation that there is no OSLB for the system.

Let B_(i) denote a linear multi-cluster tool in a treelike K-cluster tool called a branch that starts from C_(i) and ends at C_(m), m∈L. For simplicity, one assumes that the tools in B_(i) is labeled consecutively as C_(i), C_(i+1), . . . , C_(m). Assume that, with Θ=Π as the cycle time, the conditions given in Lemma 1 are violated for a pair of C_(i) and C_(i+1) in B_(i). Then, let A_(kj)=ω_(kj), k=i+1, i+2, . . . , m, j∈Ω_(n[k]), where ω_(kj) is R_(k)'s waiting time obtained by the algorithm given in [Yang, et al., 2015] with cycle time Θ=Π. Define Φ_(i+1)(S, S)=4λ_(i+1)+3μ_(i+1)+A_((i+1)(n[i+1]))−Θ+4λ_(i)+3μ_(i), when C_(i) and C_(i+1) are S-S, and Φ_(i+1)(D, S)=4λ_(i+1)+3μ_(i+1)+A_((i+1)(n[i+1]))−Θ+λ_(i), when C_(i) and C_(i+1) are D-S. If A_((i+1)(n[i+1]))=0, it follows from [Yang et al., 2014b] that an O²CS with cycle time Θ=Π+Φ_(i+1)(S, S) (or Π+Φ_(i+1)(D, S) if C_(i) is a dual-arm tool) can be found for B_(i). Otherwise, if A_((i+1)(n[i+1]))≠0, assume that, for g∈[i+1, m], A_(k+1)(n[k+1]))>0, i≤k≤g−1, and A_((g+1)(n[g+1]))=0, or C_(g+1) is a dual-arm one, or g∈L. Define D[k]={PM_(kj)|j≠(b[k]_1)−1 and j≠n[k]} be the set of steps in C_(k), and B[k]=n[k]−1, k=i+1, i+2, . . . , m. Then, let Δ_(g)=Δ_(g(n[g]))/B[g], Δ_(g−1)=A_((g−1)(n[g−1]))/(B[g−1]+B[g]), Δ_(g−2)=A_((g−2)(n[g−2]))/(B[g−2]+B[g−1]+B[g]), . . . , Δ_(i+2)=A_((i+2) (n[i+2]))/(B[i+2]+B[i+3]+ . . . +B[g]), Δ_(i+1) is defined by (15) below if C_(i) is a single-arm tool, where Γ=(B[i+1]+B[i+2]+ . . . +B[g]).

$\begin{matrix} {\Delta_{i + 1} = \left\{ {\begin{matrix} {{{\Phi_{i + 1}\left( {S,S} \right)} - A_{{({i + 1})}{({n{\lbrack{i + 1}\rbrack}})}}},{{{if}\mspace{14mu} A_{{({i + 1})}{({n{\lbrack{i + 1}\rbrack}})}}} < {\Gamma \times {{\Phi_{i + 1}\left( {S,S} \right)}/\left( {\Gamma + 1} \right)}}}} \\ {{{\Phi_{i + 1}\left( {S,S} \right)}/\left( {\Gamma + 1} \right)},{{{if}\mspace{14mu} A_{{({i + 1})}{({n{\lbrack{i + 1}\rbrack}})}}} \geq {\Gamma \times {{\Phi_{i + 1}\left( {S,S} \right)}/\left( {\Gamma + 1} \right)}}}} \end{matrix}.} \right.} & (15) \end{matrix}$ If C_(i) is a dual-arm tool, Δ_(i+1)=Φ_(i+1)(D, S)/(Γ+1). Then, one has Lemmas 2-3 [Yang, et al., 2014b].

Lemma 2:

For B_(i) that is composed of two tools, there is an O²CS and its minimal one-wafer cycle time is Θ=Π+Δ, where Δ is determined by

$\begin{matrix} {\Delta = \left\{ {\begin{matrix} \begin{matrix} \left. {{{\Phi_{2}\left( {S,S} \right)} - A_{2{({n{\lbrack 2\rbrack}})}}},{{{if}\mspace{14mu} A_{2{({n{\lbrack 2\rbrack}})}}} \in \left\lbrack {0,{\left( {{n\lbrack 2\rbrack} - 1} \right) \times {{\Phi_{2}\left( {S,S} \right)}/{n\lbrack 2\rbrack}}}} \right.}} \right) \\ {{{for}\mspace{14mu} S} - {S\mspace{14mu}{case}}} \end{matrix} \\ \begin{matrix} {{{\Phi_{2}\left( {S,S} \right)}/{n\lbrack 2\rbrack}},{{{if}\mspace{14mu} A_{2{({n{\lbrack 2\rbrack}})}}} \in \left\lbrack {{\left( {{n\lbrack 2\rbrack} - 1} \right) \times {{\Phi_{2}\left( {S,S} \right)}/{n\lbrack 2\rbrack}}},\infty} \right)}} \\ {{{for}\mspace{14mu} S} - {S\mspace{14mu}{case}}} \end{matrix} \\ {{{\Phi_{2}\left( {D,S} \right)}/{n\lbrack 2\rbrack}},{{{for}\mspace{14mu} D} - {S\mspace{14mu}{case}}}} \end{matrix}.} \right.} & (16) \end{matrix}$

With Lemma 2, a method is proposed to find the minimal cycle time and the O²CS for a B_(i) composed of two tools in [Yang, et al., 2014b].

Lemma 3:

For a B_(i) in a treelike hybrid K-cluster tool, if, by the algorithm in [Yang, et al., 2015], a one-wafer cyclic schedule with cycle time Θ (≥Π) is found, a feasible one-wafer cyclic schedule is obtained with cycle time (Θ+Δ) by setting ω_(g((b[g]) _(_) ¹⁾⁻¹⁾=A_(g((b[g]) _(_) ₁₎+Δ, g∈[i, m−1], and ω_(m0)=A_(m0)+Δ where m∈L and Δ>0.

Let ST_(i) denote a sub-tree in a treelike hybrid K-cluster tool that starts from C_(i) with C_(i) being a fork tool. Let ST_(i) and ST_(j) be two STs, and ST_(i) can be contained by ST_(j), and such a relation is denoted as ST_(i)<ST_(j) or ST_(j)>ST_(i). In a treelike hybrid K-cluster tool, the individual tools can be numbered such that ST_(j)>ST_(i) only if j<i. However, j<i does not necessarily mean ST_(j)>ST_(i), for they may be independent of each other. Such a relation is denoted as ST_(j)vST_(i). Then, one can discuss the one-wafer cyclic scheduling problem. One has the following result.

Theorem 1:

For an ST_(i) composed of three tools, there is an O²CS and its minimal cycle time is Θ=Π+Δ=Π+max{Δ₁, Δ₂}, where Δ₁ and Δ₂ are obtained by the method given in Lemma 2.

Proof:

An ST_(i) composed of three tools must contain a fork tool denoted by C_(i) and two downstream tools denoted by C_(i+1) and C_(i+2). It follows from Lemma 2 that one can schedule both C_(i) and C_(i+1) such that their cycle time is Θ=Π+Δ₁ to obtain an O²CS for tool pair of C_(i) and C_(i+1). Similarly, both C_(i) and C_(i+2) can be scheduled such that their cycle time is Θ=Π+Δ₂ to obtain an O²CS for tool pair of C_(i) and C_(i+2). Thus, for ST_(i) composed of C_(i), C_(i+1), and C_(i+2), one can schedule the three tools such that their cycle time is Θ=max{Π+Δ₁, Π+Δ₂}=Π+max{Δ₁, Δ₂} to obtain an O²CS.

The ST discussed in Theorem 1 is the simplest one. A fork tool C_(i) with f[i] adjacent downstream tools C_(i) _(_) ₁, C_(i) _(_) ₂, . . . , and C_(i) _(_) _(f[i]) may contain no ST but only branches and these branches are B_(i) _(_) ₁, B_(i) _(_) ₂, . . . , B_(i) _(_) _(f[i]). By the method presented in [Yang, et al., 2014b], one can find O²CSs for B_(i) _(_) _(q), q∈

_(f[i]). Assume that the cycle time for the branch composed of C_(i) and B_(i) _(_) _(q) is Π+Δ_(q). Then, based on Theorem 1, one has the following corollary immediately.

Corollary 1:

For an ST_(i) composed of C_(i) and its downstream branches B_(i) _(_) ₁, B_(i) _(_) ₂, . . . , B_(i) _(_) _(f[i]), there is an O²CS and its minimal one-wafer cycle time is Θ=Π+max{Δ₁, Δ₂, . . . , Δ_(f[i])}, where Π+Δ_(q) is the cycle time for the branch composed of C_(i) and B_(i) _(_) _(q), q∈

_(f[i]).

Then, an O²CS for a treelike hybrid K-cluster tool can be found as follows. Let C_(j) be a fork tool. There must be a ST_(j). Assume that there are tools C_(i), C_(i+1), . . . , C_(j−2), C_(j−1), and none of them is a fork tool. Then, one calls the multi-cluster tool formed by C_(i) and all its downstream tools an extended sub-tree denoted as EST_(i). Note that C_(i) is not a fork tool. If EST_(i) contains ST_(j), one calls EST_(i) is an extended sub-tree of ST_(j). Let F={l/C_(i) is a fork tool} be the index set of fork tools. Assume that j∈F has the largest value, i.e. j=max_(l∈F){l}. Then, ST_(j) must contain no ST and its O²CS can be found based on Corollary 1. There may be more than one EST of ST_(j). Thus, with the O²CS for ST_(j) found, one needs to find the O²CSs for all its ESTs. Then, let F←F\{j}. If F≠Ø, find h such that it has the largest value in F, i.e., h=max_(l∈F){l}. If ST_(h)vST_(j), or they are independent of each other, it can be dealt with just as ST_(j). Otherwise, ST_(j) can be contained in ST_(h) or one has ST_(h)>ST_(j). In this case, one needs to find the O²CS for ST_(h) and its ESTs. Then, let F←F\{h} and repeat the above procedure. In this way, with the decreasing order of the indices in F, one finds the O²CSs for all the STs and their ESTs. When C₁ is reached, one finds the O²CS for the treelike hybrid K-cluster tool. The key is how to find an O²CS for a ST or an extended one. By the definition of an EST_(k), if B_(i) _(_) _(q) in Corollary 1 is replaced by EST_(i) _(_) _(q), the result must also hold.

In the following, one first shows how to find the O²CS for an EST that contains only one fork tool and then present a method for finding the O²CS for the whole system. Assume that j=max_(l∈F){l} and EST_(i) is an extended sub-tree of ST_(j). Further, assume that for tool pair C_(i) and C_(i+1), i+1≤j, there is no one-wafer cyclic schedule with cycle time Θ. Notice that, based on the O²CS for ST_(j) that can be found based on Corollary 1, Condition (13) or (14) is not satisfied for tool pair C_(i) and C_(i+1), i+1≤j, only.

Let A_(pj)=ω_(pj), p∈

_(K)\N_(i), j∈Ω_(n[p]), where ω_(pj)'s are obtained by the algorithm in [Yang, et al., 2015] with cycle time Θ, and define D[l]={PM_(1j)|j≠n[l] and j≠(b[l]_d)−1, d∈f[l]} and B[l]=n[l]−1, l∈

_(K). Let Φ_(i+1)(S, S)=4λ_(i+1)+3μ_(i+1)+A_((i+1)(n[i+1]))−Θ+4λ_(i)+3μ_(i) for the S-S case and Φ_(i+1)(D, S)=4λ_(i+1)+3μ_(i+1)+A_((i+1)(n[i+1]))=Θ+4λ_(i)+3μ_(i) for the D-S case. It follows from [Yang, et al., 2014b] that, if A_((i+1)(n[i+1]))=0, to make (13) or (14) satisfied for C_(i) and C_(i+1), Θ needs to be increased by Φ_(i+1)(D, S) and Φ_(i+1)(S, S) time units, respectively. If A_((i+1)(n[i+1]))≠0, one needs to check if A_(j(n[j]))=0. If yes, the optimal cycle time can still be found by the methods in [Yang, et al., 2014b]. If A_(j(n[j]))≠0 and there is a dual-arm tool in the tools C_(i+1), C_(i+2), C_(j), or there is at least one A_(p(n[p]))=0, i+1<p<j, one can still find the optimal cycle time by the methods in [Yang, et al., 2014b]. However, when A_(p(n[p]))>0, i+1≤p≤j, one cannot find the optimal cycle time by the methods in [Yang, et al., 2014b]. In this situation, one discusses how to find the optimal cycle time as follows.

Assume that C_(j) has f[j] downstream tools such that ST_(j) has f[j] branches. Then, for C_(j) _(_) _(q) in B_(j) _(_) _(q), q∈

_(f[j]) one first checks whether A_((j) _(_) _(q)(n[q])>)0. If so, find g such that A_(((j) _(_) _(q)+z)(n[(j) _(_) _(q)+z]))>0, 0≤z≤g, and A_((j) _(_) _(q)+z+1)(n[(j) _(_) _(q)+z+1]))>0 or C_((j) _(_) _(q)+g+1) is a dual-arm one, or (j_q)+g∈L. Then, let A_(((j) _(_) _(q)+g))=A_(((j) _(_) _(g)(n[(j) _(_) _(q)+g]))/B[(j_q)+g], Δ_(((j) _(_) _(q)+g−1))=A_(((j) _(_) _(q)+g−1)(n[j) _(_) _(q)+g−1]))/(B[(j_q)+g−1]+B[(j_q)+g]), Δ_((j) _(_) _(q)+g−2))=A_(((j) _(_) _(q)+g−2)(n[j) _(_) _(q)+g−2]))/B[(j_q)+g−2]+B[(j_q)+g−1]+B[(j_q)+g]), . . . , and Δ_(j) _(_) _(q))=A_((j) _(_) _(q)(n[j) _(_) _(q]))/B[j_q]+B[(j_q)+1]+ . . . +B[(j_q)+g]). Further, let Υj_q=(B[j_q]+B[(j_q)+1]+ . . . +B[(j_q)+g]), q∈

_(f[j]), and Υ_(j)=Υ_(j) _(_) ₁+Υ_(j) _(—2) + . . . +Υ_(j) _(_) _(f[j]). It should be noted that, if A_((j) _(_) _(q)(n[j) _(_) _(q]))=0, one has Υ_(j) _(_) _(q)=0. Then, define Δ_(j)=A_(j(n[j]))/[Υ_(j)+B[j]], Δ_(j−1)=A_((j−1)(b[j−1]))/(Υ_(j)+B[j]+B[j−1]), . . . , Δ_(i+2)=A_((i+2)(n[i+2]))/(Υ_(j)+B[j]+B[j−1]+ . . . +B[i+2]). Let Λ=Υ_(j)+B[j]+B[j−1]+ . . . +B[i+1], Δ=min{Δ_(i+1), Δ_(i+2), . . . , Δ_(j), Δ_((j) _(_) _(q)+z))} and κ=argmin{Δ_(i+1), Δ_(i+2), . . . , Δ_(j), Δ_((j) _(_) _(q)+z))} with q∈

_(f[j]) and 0≤z≤g, where Δ_(i+1) is defined by

$\begin{matrix} {\Delta_{i + 1} = \left\{ {\begin{matrix} {{{\Phi_{i + 1}\left( {S,S} \right)} - A_{{({i + 1})}{({n{\lbrack{i + 1}\rbrack}})}}},} & \begin{matrix} {{{if}\mspace{14mu} 0} < A_{{({i + 1})}{({n{\lbrack{i + 1}\rbrack}})}} < \frac{\Lambda \times {\Phi_{i + 1}\left( {S,S} \right)}}{1 + \Lambda}} \\ {{{for}\mspace{14mu} S} - {S\mspace{14mu}{case}}} \end{matrix} \\ {\frac{\Phi_{i + 1}\left( {S,S} \right)}{1 + \Lambda},} & \begin{matrix} {{{if}\mspace{14mu} A_{{({i + 1})}{({n{\lbrack{i + 1}\rbrack}})}}} \geq \frac{\Lambda \times {\Phi_{i + 1}\left( {S,S} \right)}}{1 + \Lambda}} \\ {{{for}\mspace{14mu} S} - {S\mspace{14mu}{case}}} \end{matrix} \\ {\frac{\Phi_{i + 1}\left( {D,S} \right)}{1 + \Lambda},} & {{{for}\mspace{14mu} D} - {S\mspace{14mu}{case}}} \end{matrix}.} \right.} & (17) \end{matrix}$ Then, one has the following results.

Theorem 2:

Assume that: 1) j=max_(l∈F) {l}; 2) for an EST_(i) of ST_(j), by the algorithm in [Yang, et al., 2015] with cycle time Θ, Condition (14) is violated for tool pair C_(i) and C_(i+1), i+1≤j, only; and 3) Δ=Δ_(κ)=A_(i+1). Then, for EST_(i), an O²CS with cycle time Θ+Δ can be found, where Δ is given by (17).

Proof:

Since (14) is violated for tool pair C_(i) and C_(i+1) only, they should be S-S. It follows from (17) that if 0<A_((i+1)(n[i+1]))≤Λ×Φ_(i+1)(S, S)/(Λ+1) and Δ=Δ_(i+1)=Φ_(i+1)(S, S)−A_((i+1)(n[i+1])), one has (Λ+1)×A_((i+1)(n[i+1]))≤Λ×Φ_(i+1)(S, S)

A_((i+1)(n[i+1]))<Λ×(Φ_(i+1)(S, S)−A_((i+1)(n[i+1])))

A_((i+1)(n[i+1]))/Λ<Φ_(i+1)(S, S)−A_((i+1)(n[i+1]))=Δ. By A_((i+1)(n[i+1]))>0, one has Δ>0, or it is feasible in the sense of that the time is set to be positive value. Let Θ←Θ+Δ. Then, for B_((j) _(_) _(q)+g+1)) (if it exists) in B_(j) _(_) _(q) q∈

_(f[j]), reset the robots' waiting time as given by Lemma 3. Meanwhile, for C_(((j) _(_) _(q)+g)), set ω_(((j) _(_) _(q)+g)l)=A_(((j) _(_) _(q)+g)l)+A_((i+1)(n[i+1]))/Λ, l∈D[(j_q)+g] (or l∈

_(n[j) _(_) _(q)+g])\{n[(j_q)+g]} if (j_q)+g∈L), ω_((j) _(_) _(q)+g)((b[(j) _(_) _(q)+g]) _(_) ¹⁾⁻¹⁾=A_((j) _(_) _(q)+g)((b[(j) _(_) _(q)+g]) _(_) ¹⁾⁻¹⁾+Δ (or ω_((j) _(_) _(q)+g)0)=A_(((j) _(_) _(q)+g)0)+Δ if (j_q)+g∈L), and ω_((j) _(_) _(q)+g)(n[j) _(_) _(q)+g]))=A_((j) _(_) _(q)+g)(n[j) _(_) _(q)+g]))−B[(j_q)+g]×A_((i+1)(n[i+1]))/Λ>A_(((j) _(_) _(q)+g)(n[j) _(_) _(q)+g]))−B[(j_q)+g]×Δ>A_(((j) _(_) _(q)+g)(n[(j) _(_) _(q)+g]))−B[(j_q)+g]×Δ_((j) _(_) _(q)+g)=0. It follows from the discussion in the last section that it is feasible for C_((j) _(_) _(q)+g). For C_((j) _(_) _(q)+g−1), set ω_(((j) _(_) _(q)+g−1)((b[(j) _(_) _(q)+g−1]) _(_) ¹⁾⁻¹⁾=A_(((j) _(_) _(q)+g−1)((b[(j) _(_) _(q)+g−1]) _(_) ¹⁾⁻¹⁾+B[(j_q)+g]×A_((i+1)(n[i+1]))/Λ+Δ, ω_(((j) _(_) _(q)+g−1)l)=A_(((j) _(_) _(q)+g−1)l)+A_((i+1)(n[i+1]))/Λ, l∈D[(j_q)+g−1], and ω_((j) _(_) _(q)+g−1)(n[(j) _(_) _(q)+g−1]))=A_((j) _(_) _(q)+g−1)(n[(j) _(_) _(q)+g−1]))−(B[(j_q)+g]+B[(j_q)+g−1])×A_((i+1)(n[i+1])/Λ>)0. It is also feasible for C_((j) _(_) _(q)+g−1). Then, set the robot waiting time for C_((j) _(_) _(q)+g−2), . . . , C_((j) _(_) _(q)+2), C_((j) _(_) _(q)+1), and C_(j) _(_) _(q) in a similar way. For C_(j) _(_) _(q), one has ω_((j) _(_) _(q)((b[j) _(_) _(q]) _(_) ¹⁾⁻¹⁾=A_((j) _(_) _(q)((b[j) _(_) _(q]) _(_) ¹⁾⁻¹⁾+(B[(j_q)+g]+B[(j_q)+g−1]+ . . . +B[(j_q)+1])×A_((i+1)(n[i+1]))/Λ+Δ, ω_((j) _(_) _(q)l)=A_((j) _(_) _(q)l)+A_((i+1)(n[i+1]))/Λ, l∈D[j_q], and ω_((j) _(_) _(q)(n[j) _(_) _(q]))=A_((j) _(_) _(q)(n[j) _(_) _(q])−(B[(j) _(_) _(q)+g]+B[(j) _(_) _(q))+g−1]+ . . . +B[j_q])×A_((i+1)(n[i+1]))/Λ>0. It is feasible for C_(j) _(_) _(q) too. For the fork tool C_(j), set ω_(j((b[j]) _(_) _(d)−1))=A_(j((b[j]) _(_) _(d)−1))+(B[(j_q)+g]+B[(j_q)+g−1]+ . . . +B[j_q]+1)×A_((i+1)(n[i+1]))/Λ, d∈{2, 3, . . . , f[j]}; ω_(j((b[j]) _(_) ¹⁾⁻¹⁾=A_(j((b[j]) _(_) ¹⁾⁻¹⁾+(B[j_q)+g]+B[(j_q)+g−1]+ . . . +B[j_q])×A_((i+1)(n[i+1]))+Δ; and ω_(jl)=A_(jl)+A_((i+1)(n[i+1]))/Λ, l∈D[j]. At last, set ω_(j(n[j]))=A_(j(n[j]))−(Υ_(j)+B[j])×A_((i+1)(n[i+1]))/Λ>0. Similarly, set the robot waiting time for C_(j−1), C_(j−2), . . . , till to C_(i+1). In this way, for C_(i+1), one has ω_((i+1)((b[i+1]) _(_) ¹⁾⁻¹⁾=A_((i+1)(b[i+1]) _(_) ¹⁾⁻¹⁾+(Λ−B[i+1])×A_((i+1)(n[i+1]))/Λ+Δ, ω_((i+1)l)=A_((i+1)l)+A_((i+1)(n[i+1]))/Λ, j∈D[i+1], and ω_((i+1)(n[i+1]))=A_((i+1)(n[i+1]))−Λ×Δ_((i+1)(n[i+1]))/Λ=0. By doing so, one has Θ+Δ−(4λ_(i+1)+3μ_(i+1))=Θ+4λ_(i+1)+3μ_(i+1)+A_((i+1)(n[i+1]))−Θ+4λ_(i)+3μ_(i))−A_((i+1)(n[i+1]))−(4λ_(i+1)+3μ_(i+1))=4λ_(i)+3μ_(i). This implies that a one-wafer cyclic schedule is found for EST_(i) with cycle time Θ←Θ+Δ. Notice that one has Θ+Δ−(4λ_(i+1)+3μ_(i+1))=4λ_(i)+3μ_(i), implying that any decrease of cycle time Θ would result in Θ+Δ−(4λ_(i+1)+3μ_(i+1))<4λ_(i)+3μ_(i), or the schedule obtained is optimal in the sense of cycle time.

If A_((i+1)(n[i+1]))≥Λ×Ω_(i+1)(S, S)/(Λ+1) and Δ=Φ_(i+1)(S, S)/(Λ+1)>0. Let Θ←Θ+Δ, and set the robot waiting time as done above with both A_((i+1)(n[i+1]))/Λ and Δ=Φ_(i+1)(S, S)−A_((i+1)(n[i+1])) being replaced by Δ=Φ_(i+1)(S, S)/(Λ+1). Eventually, for C_(i+1), one has ω_((i+1)((b[i+1]) _(_) ¹⁾⁻¹⁾=A_((i+1)((b[i+1]) _(_) ¹⁾⁻¹⁾+(Λ−B[i+1])×Δ+Δ, ω_((i+1)l)=A_((i+1)l)+Δ, l∈D[i+1], and ω_((i+1)(n[i+1]))=A_((i+1)(n[i+1]))−Λ×Δ≥0. Similar to the above case, the obtained schedule can be shown to be a feasible and optimal one-wafer cyclic schedule.

The result given by Theorem 2 can be illustrated by FIG. 5. At time zero, R_(i) in C_(i) completes its firing for loading a wafer into p_(i(b[i]))(p_((i+1)0)). Meanwhile, R_(i+1) in C_(i+1) starts to unload a wafer from p_(i(b[i]))(p_((i+1)0)) As shown in FIG. 5, χ₁=Θ−(4λ_(i)+3μ_(i)) is the time point when R_(i) is scheduled to unload a wafer from p_(i(b[i]))(p_((i+1)0)) and χ₂=4λ_(i)3μ_(i+1)+A_((i+1)(n[i+1])) is the time point when R_(i+1) is scheduled to load a wafer into p_(i(b[i]))(p_((i+1)0)). With χ₁<χ₂, the schedule for C_(i) is unrealizable. Let Φ_(i+1)(S, S)=χ₂−χ₁. Then, by Theorem 2, the cycle time is increased by Δ such that Θ←Θ+Δ, with Δ=Δ_(i+1) being given by (17). From (17), with C_(i) and C_(i+1) being S-S, there are two cases. For Case 1, A_((i+1)(n[i+1]))≤Λ×Φ_(i+1)(S, S)/(Λ+1), and Δ=Δ_(i+1)=Ω_(i+1)(S, S)−A_((i+1)(n[i+1])). Then, with cycle time Θ, X₁=χ₁+Δ is the time point when R_(i) is scheduled to unload a wafer from p_(i(b[i]))(p_((i+1)0)) and X₂=χ₂−A_((i+1)(n[i+1])) is the time point when R_(i+1) is scheduled to load a wafer into p_(i(b[i])) (p_((i+1)0)) Since X₁=X₂ as illustrated in FIG. 5, the schedules for both C_(i) and C_(i+1) are realizable and a one-wafer cyclic schedule is obtained for EST_(i). For Case 2, A_((i+1)(n[i+1]))≥Λ×Φ_(i+1)(S, S)/(Λ+1), and Δ=Φ_(i+1)(S, S)/(Λ+1). Then, with cycle time Θ, one has X₁=χ₁+Δ=X₂=χ₂−Φ_(i+1)(S, S)+Δ. Hence, a one-wafer cyclic schedule is obtained for EST_(i) too.

If C_(i) and C_(i+1) are D-S, one has the following result.

Theorem 3:

Assume that: 1) j=max_(l∈F){l}; 2) for an EST_(i) of ST_(j), by the algorithm in [Yang, et al., 2015] with cycle time Θ, Condition (13) is violated for adjacent tool pair C_(i) and C_(i+1), i+1≤j, only; and 3) Δ=Δ_(κ)=Δ_(i+1). Then, for EST_(i), an O²CS with cycle time Θ+Δ can be found, where Δ is given by (17).

Proof:

Since (13) is violated for adjacent tool pair C_(i) and C_(i+1) only, it should be D-S. It follows from (17) that Δ=Ω_(i+1)(D, S)/(Λ+1)>0. Let Θ←Θ+Δ, and set the robot waiting time as done for Case 1 in Theorem 2 with both A_((i+1)(n[i+1]))/Λ and Δ=Φ_(i+1)(S, S)−A_((i+1)(n[i+1])) being replaced by Δ=Φ_(i+1)(S, S)/(Λ+1)>0. At last, for C_(i+1), set ω_((i+1)((b[i+1]) _(_) ¹⁾⁻¹⁾=A_((i+1)((b[i+1]) _(_) ¹⁾⁻¹⁾+(Λ−B[i+1])×Δ+Δ, ω_((i+1)l)=A_((i+1)l)+Δ, l∈D[i+1], and ω_((i+1)(n[i+1]))=A_((i+1)(n[i+1]))−Λ×Δ=A_((i+1)(n[i+1]))−Λ×Φ_(i+1)(D, S)/(Λ+1). By the assumption in Section A, for each tool C_(p), p∈

_(K), n[p]≥2 holds. Hence, for single-arm tool C_(i+1), one has Θ=ψ_(i)=Σ_(l=0) ^(n[i+1])A_((i+1)l)+2(n[i+1]+1)(λ_(i+1)+μ_(i+1))≥Σ_(l=0) ^(n[i+1])A_((i+1)l)+6(λ_(i+1)+μ_(i+1))

6(λ_(i+1))≤Θ

4λ_(i+1)+3μ_(i+1)<4(λ_(i+1)+μ_(i+1))≤(⅔)Θ. For dual-arm tool C_(i), one has Θ=ψ_(i)=Σ_(l=0) ^(n[i])A_(kl)+(n[i]+1)(λ_(i)+μ_(i))≥Σ_(l=0) ^(n[i])A_(kl)+3(λ_(i)+μ_(i))

3λ_(i)<Θ

2Θ<3Θ−3λ_(i)

(⅔)Θ<Θ−λ_(i). Thus, one has 4λ_(i+1)+3μ_(i+1)<(⅔)Θ<Θ−λ_(i)

4λ_(i+1)+3μ_(i+1)−(Θ−λ_(i))+A_((i+1)(n[i+1]))<A_((i+1)(n[i+1]))

A_((i+1)(n[i+1]))>Φ_(i+1)(D, S)=4λ_(i+1)+3μ_(i+1)−(Θ−λ_(i))+A_((i+1)(n[i+1])). This implies that ω_((i+1)(n[i+1]))=A_((i+1)(n[i+1]))−Λ×Φ_(i+1)(D, S)/(Λ+1)>0, i.e. it is feasible. Similar to Theorem 2, the schedule obtained is optimal.

The idea of Theorem 3 is the same as that of Theorem 2. In Theorems 2 and 3, it is assumed that κ=i+1. When κ=argmin{Δ_(i+1), Δ_(i+2), . . . , Δ_(j), Δ_((j) _(_) _(q)+z))}≠i+1, q∈

_(f[j]), 0≤z≤g, the following result presents how to find an O²CS for EST_(i).

Theorem 4:

Assume that: 1) j=max_(l∈F){l}; 2) in EST_(i) of ST_(j), by the algorithm in [Yang, et al., 2015] with cycle time Θ, Condition (13) or (14) is violated for tool pair C_(i) and C_(i+1), i+1≤j, only; 3) Δ=Δ_(κ)≠Δ_(i+1). Then, there is an O²CS with cycle time Θ+Δ for EST_(i), where Δ is defined as above.

Proof:

Assume κ=p, or Δ=min{Δ_(i+1), A_(i+2), . . . , Δ_(j), Δ_((j) _(_) _(q)+z))}=Δ_(p), q∈

_(f[j]), 0≤z≤g, and p∈[j_1, (j_1)+g]. Let Θ←Θ+Δ and, for EST_(i), set the robots' waiting time as done for Case 1 in Theorem 2 with both A_((i+1)(n[i+1]))/Λ and Δ=Φ_(i+1)(S, S)−A_((i+1)(n[i+1])) being replaced by Δ=Δ_(p) such that ω_(p(n[p]))=A_(p(n[p]))−(B[p]+B[p+1]+ . . . +B[g])×(A_(p(n[p]))/(B[p]+B[p+1]+ . . . +B[g]))=0. Then let g=p−1 and calculate Δ again. If Δ=Δ_(q), q∈[j_1, (j_1)+g], let Θ←Θ+Δ and repeat the above process. If p∈[j_q, (j_q)+g], q=2, 3, . . . , f[j], or p∈argmin{Δ_(i+1), A_(i+2), . . . , Δ_(j)}, set the robots' waiting time for EST_(i) in the same way. In this way, finally, Δ=A_(i+1) must occur and then an O²CS for EST_(i) is found by using Theorem 2 (or Theorem 3 when C_(i) is a dual-arm one).

By Theorems 2-4, to find an O²CS for an EST_(i) of ST_(j), it requires that j is the largest one in F, and such an EST_(i) contains only one fork tool. This is not enough for one to find the O²CS for a treelike hybrid K-cluster tool. However, based on Theorems 2-4, one can obtain the O²CS for an arbitrary EST_(k) as follows. Assume that for an EST_(k) that may contain more than one fork tool. Then Condition (13) or (14) is violated for C_(k) and C_(i) only with C_(i) being the downstream adjacent tool of C_(k). A path from C_(k) to a downstream C_(l) is called a shortest path if there are the fewest nodes (tools) on the path. Then, for an EST_(k), one says that C_(l) is “connected” to C_(k) if: 1) there are only single-arm tools on the shortest path from C_(k) to C_(l); and 2) for each tool C_(p) on the path, ω_(p(n[p]))'s>0. By default, C_(k) is connected to itself. Let S_(k)={p|C_(p) is connected to C_(k)}. Further, as is done above, let Φ₁(S, S)=4λ_(i)+3μ_(i)+A_(i(n[i]))−Θ+4λ_(k)+3μ_(k) for the S-S case and Φ_(i)(D, S)=4λ_(i)+3μ_(i)+A_(i(n[i]))−Θ+λ_(k) (for the D-S case. Then, for an arbitrary EST_(k) with C_(i) being the downstream adjacent tool of C_(k), to find the minimal one-wafer cycle time, Δ_(m) can be calculated as follows. One has that Δ_(m) =A _(m(n[m]))/(Σ_(p∈S) _(m) B[p]),m>i,  (18) and if m=i, then one has

$\begin{matrix} {\Delta_{m} = {\Delta_{i} = \left\{ {\begin{matrix} {{{\Phi_{i}\left( {S,S} \right)} - A_{i{({n{\lbrack i\rbrack}})}}},} & \begin{matrix} {{{if}\mspace{14mu} 0} < A_{i{({n{\lbrack i\rbrack}})}} \leq \frac{\sum_{p \in S_{i}}{{B\lbrack p\rbrack} \times {\Phi_{i}\left( {S,S} \right)}}}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}}} \\ {{{for}\mspace{14mu} S} - {S\mspace{14mu}{case}}} \end{matrix} \\ {\frac{\Phi_{i}\left( {S,S} \right)}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}},} & \begin{matrix} {{{if}\mspace{14mu} A_{{({i + 1})}{({n{\lbrack{i + 1}\rbrack}})}}} \geq \frac{\sum_{p \in S_{i}}{{B\lbrack p\rbrack} \times {\Phi_{i}\left( {S,S} \right)}}}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}}} \\ {{{for}\mspace{14mu} S} - {S\mspace{14mu}{case}}} \end{matrix} \\ {\frac{\Phi_{i}\left( {D,S} \right)}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}},} & {{{for}\mspace{14mu} D} - {S\mspace{14mu}{case}}} \end{matrix}.} \right.}} & (19) \end{matrix}$ Clearly, (19) is the extension of (17) for an EST_(k) containing one or more fork tools. Thus, based on (18) and (19), one can find the O²CS for an EST_(k) if (13) or (14) is violated for C_(k) and C_(i) only with C_(i) being the downstream adjacent tool of C_(k). With the O²CS for an EST_(j), the O²CS for a ST_(k) that contains a number of EST_(j)'s can be obtained by using Corollary 1. One presents the following algorithm.

Algorithm 1:

Given an O²CS with cycle time Θ for EST_(i) (or ST_(i), or B_(i)), find the O²CS for EST_(k) (or ST_(k)) with C_(i) being the downstream adjacent tool of C_(k).

Step 1:

Given cycle time Θ, check if Θ is the optimal cycle time for EST_(k) (or ST_(k)) by the algorithm in [Yang, et al., 2015]. If yes, go to Step 5.

Step 2:

If k∉F and A_(i(n[i]))=0, then:

2.1. Θ←Θ+Δ_(i)=Θ+Φ_(i)(S, S) (or Φ_(i)(D, S) if it is D-S case);

2.2. Reset the robots' waiting time by the algorithm in [Yang, et al., 2015] with cycle time Θ, then go to Step 5.

Step 3:

If k∉F and A_(i(n[i]))≠0, then:

3.1. For m∈S_(i), calculate Δ_(m)'s, by (18) or (19).

3.2. If Δ=min{Δ_(p)|p∈S_(i)}=Δ_(i), do:

3.2.1. If it belongs to the first case in (19), then:

3.2.1.1. In EST_(i) or B_(i), for p∉S_(i), if p∉L, ω_(p((b[p]) _(_) ¹⁾⁻¹⁾=A_(p((b[p]) _(_) ¹⁾⁻¹⁾+Δ, otherwise ω_(p0)=A_(p0)+Δ.

3.2.1.2. In EST_(i) or B_(i), if p∈S_(i) and p∉F, set ω_(pj)=A_(pj)+A_(i(n[i]))/(Σ_(p∈S) _(i) B[p]), j ∈D[p] (or j∈

_(n[p])\{n[p]} if p∈L), ω_(p((b[p]) _(_) ¹⁾⁻¹⁾=A_(p((b[p]) _(_) ¹⁾⁻¹⁾+Σ_(q∈S) _(p) _({p})B[q]×A_(i(n[i]))/(Σ_(p∈S) _(i) B[p])+Δ (or ω_(p0)=A_(p0)+Δ if p∈L), and ω_(p(n[p]))=A_(p(n[p]))−Σ_(q∈S) _(p) B[q]×A_(i(n[i]))/(Σ_(p∈S) _(i) B[p]).

3.2.1.3. In EST_(i), if p∈S₁ and p∈F, set ω_(pj)=A_(pj)+A_(i(n[i])/(Σ_(p∈S) _(i) B[p]), j∈D[p], ω_(p((b[p]) _(_) ¹⁾⁻¹⁾=A_(p((b[p]) _(_) ¹⁾⁻¹⁾+

${\omega_{pj} = {A_{pj} + {A_{i{({n{\lbrack i\rbrack}})}}/\left( {\sum\limits_{p \in S_{i}}{B\lbrack p\rbrack}} \right)}}},{j \in {D\lbrack p\rbrack}},{\omega_{p{({{({{b{\lbrack p\rbrack}}\;\_\; 1})} - 1})}} = {A_{p{({{({{b{\lbrack p\rbrack}}\;\_\; 1})} - 1})}} + {\sum\limits_{q \in S_{p\;\_\; 1}}{{B\lbrack q\rbrack} \times {A_{i{({n{\lbrack i\rbrack}})}}/\left( {\sum\limits_{p \in S_{i}}{B\lbrack p\rbrack}} \right)}}} + \Delta}},{\omega_{p{({{({{b{\lbrack p\rbrack}}\;\_\; d})} - 1})}} = {A_{p{({{({{b{\lbrack p\rbrack}}\;\_\; d})} - 1})}} + {\left( {{\sum\limits_{q \in S_{p\;\_\; d}}{B\lbrack q\rbrack}} + 1} \right) \times {A_{i{({n{\lbrack i\rbrack}})}}/\left( {\sum\limits_{p \in S_{i}}{B\lbrack p\rbrack}} \right)}}}},{d \in \left\{ {2,3,\ldots\mspace{14mu},{f\lbrack p\rbrack}} \right\}},{{{and}\mspace{14mu}\omega_{p{({n{\lbrack p\rbrack}})}}} = {A_{p{({n{\lbrack p\rbrack}})}} - {\sum\limits_{q \in S_{p}}{{B\lbrack q\rbrack} \times {A_{i{({n{\lbrack i\rbrack}})}}/{\left( {\sum\limits_{p \in S_{i}}{B\lbrack p\rbrack}} \right).}}}}}}$

3.2.1.4. Go to Step 5.

3.2.2. If it belongs to the second/third case in (19), set the robot waiting time by repeating Steps 3.2.1.1-3.2.1.4, in doing so, one needs to replace A_(i(n[i]))/(Σ_(p∈S) _(i) B[p]) and Δ=Φ_(i)(S,S)−A_(i(n[i])) there with Δ=Φ_(i)(S,S)/(Σ_(p∈S) _(i) B[p]+1) (or Φ_(i)(D,S)/(Σ_(p∈S) _(i) B[p]+1) if it belongs to the third case).

3.3. If Δ=min{Δ_(p)|p∈S_(i)}=Δ_(f)≠Δ_(i), set the robot waiting time by repeating Procedures in 3.2.1.1 to 3.2.1.4 with both A_(i(n[i]))/(Σ_(p∈S) _(i) B[p]) and Δ=Φ_(i)(S,S)−A_(i(n[i])) being replaced by Δ=Δ_(f), then, back to Step 3.1.

Step 4: If k∈F, then:

4.1. Find the optimal cycle time Θ+Δ_(q) for C_(k) with EST_(k) _(_) _(q) (or ST_(k) _(_) _(q)), q∈

_(f[k]), by repeating Steps 2 and 3.

4.2. Θ←Θ+max{Δ₁, Δ₂, . . . , Δ_(f[k])}.

4.3. Find the O²CS for ST_(k) by resetting the robot waiting time with cycle time Θ by using the algorithm in [Yang, et al., 2015].

Step 5:

Stop and output the schedule.

With the above analysis, one can find the O²CS for a process-dominant treelike hybrid K-cluster tool as follows. One finds the O²CS for the smallest ST, say ST_(j) with j=max_(l∈F){l} and its ESTs first. Then, do that for the ST that is larger than ST_(j). Continue this process until it is done for the K-cluster tool to find the final solution. However, by Algorithm 1, it requires that, for an EST_(k), Condition (13) or (14) is violated for tool pair C_(k) and C_(i) only. This may not hold for general cases. To solve this problem, the O²CS for the ESTs of ST_(j) can be found as follows. Based on the O²CS of ST_(j), for EST_(j−1) with C_(j−1) being not a fork, the above requirement must be satisfied. Thus, one can find the O²CS for EST_(j−1). Thereafter, one can do that for EST_(j−2), until to EST_(i) such that the upstream adjacent tool of C_(i) is a fork, and in these processes the above requirement is always satisfied. Thus, one presents the following algorithm.

Algorithm 2:

Find an O²CS for a process-dominant treelike hybrid K-cluster tool.

Step 1:

Θ=max{Π₁, Π₂, . . . , Π_(K)}.

Step 2:

Check the existence of an OSLB by the algorithm in [Yang et al., 2015]. Then:

2.1. If yes, find the schedule and go to Step 4.

2.2. Otherwise find the set F such that l∈F, find the fork tool C_(j) with j=max_(l∈F){l}, and go to Step 3.

Step 3:

Find the O²CSs for ST_(j) and all of its EST_(k)'s:

3.1. Find the O²CS for ST_(j).

3.2. Find the O²CS for all of the EST_(k)'s of ST_(j):

3.2.1. Find k such that C_(k) is the upstream adjacent tool of C_(j).

3.2.2. If C_(k) is a fork tool, go to Step 3.3; otherwise proceed to execute Step 3.2.3.

3.2.3. Find the O²CS for EST_(k) by using Algorithm 1.

3.2.4. Let i=k, if i=1, go to Step 4; otherwise find k such that C_(k) is the upstream adjacent tool of C_(i), and go to Step 3.2.2.

3.3. If F←F\{j}≠Ø, go back to Step 2.2.

Step 4:

End and output the schedule.

Notice that, for a process-dominant treelike hybrid K-cluster tool, the number of Bs+the number of STs+the number of ESTs must be less than K. Also, any B or ST, or EST contains no more than K tools. Given any of B, ST, and EST, one needs to calculate the optimal cycle time at most (K−1) times by increasing Δ each time. Thus, the computational complexity is O(K²). With K being limited in practice, the method presented is efficient and is applicable to industrial cases.

D. Illustrative Examples

This section uses two examples to show the application of the disclosed method.

Example 1

It is a treelike hybrid 3-cluster tool, where C₁ is a fork tool and its adjacent downstream tools are C₂ and C₃. Furthermore, C₂ and C₃ are single-arm tools, and C₁ is a dual-arm tool. Their activity times are as follows. For C₁, (α₁₀, α₁₁, α₁₂, α₁₃, λ₁, μ₁)=(0, 77, 0, 0, 23, 1); for C₂, (α₂₀, α₂₁, α₂₂, λ₂, μ₂)=(0, 75, 79, 4, 1); and for C₃, (α₃₀, α₃₁, α₃₂, λ₃, μ₃)=(0, 71, 69, 6, 1).

For C₁, one has ξ₁₀=23 s, ξ₁₁=100 s, ξ₁₂=23 s, ξ₁₃=23 s, ψ₁₁=(n[1]+1)×(λ₁+μ₁)=4×24=96 s, and Π₁=100 s. For C₂, one has ξ₂₀=19 s, ξ₂₁=94 s, ξ₂₂=98 s, ψ₂₁=2(n[2]+1)×(λ₂+μ₂)=6×5=30 s and Π₂=98 s. For C₃, one has ξ₃₀=27 s, ξ₃₁=98 s, ξ₃₂=96 s, ψ₃₁=2(n[3]+1)×(λ₃+μ₃)=6×7=42 s and Π₃=98 s. Since all the individual tools are process-bound, this 3-cluster tool is process-dominant, and one lets Θ=π₁=π₂=π₃=Π=Π₁=100 s. By the algorithm provided in [Yang, et al., 2015], the robots' waiting time is set as ω₂₀=6 s, ω₂₁=2 s, and ω₂₂=Π−ψ₂₁−ω₂₀−ω₂₁=100−30−6−2=62 s; ω₃₀=2 s, ω₃₁=4 s, and ω₃₂=Π−ψ₃₁−ω₃₀−ω₃₁=100−42−2−4=52 s. Thus, for C₁, as Π−(4λ₂+3μ₂+ω₂₂)−λ₁=100−(19+62)−23=−4<0 and Π−(4λ₃+3μ₃+ω₃₂)−λ₁=100−(27+52)−23=−2<0, or (14) is violated and there is no OSLB. Thus one needs to find an optimal cycle time Θ by Algorithm 2.

By Algorithm 2, one has Δ₂=Φ₂(D, S)/n[2]=4/2=2 s, Δ₃=Φ₃(D, S)/n[3]=2/2=1 s, Δ=max{Δ₂, Δ₃}=2 s, and Θ=102 s. Then, let A_(ij)=ω_(ij), i∈

₃\{1} and j∈Ω_(i(n[i])), where ω_(ij) is obtained by the algorithm provided in [Yang, et al., 2015]. By Algorithm 2, the robot waiting time is set as ω₃₀=A₃₀+Δ=4 s, ω₃₁=A₃₁+Δ=6 s, ω₃₂=A₃₂−Δ=50 s, ω₂₀=A₂₀+Δ=8 s, ω₂₁=A₂₁+Δ=4 s, ω₂₂=A₂₂−Δ=60 s, ω₁₀=A₁₀+Δ=6 s, and ω₁₁=ω₁₂=ω₁₃=0. In this way, the minimal cycle time and optimal one-wafer cyclic schedule is obtained and it is shown by the Gantt chart in FIG. 6.

Example 2

It is from [Yang, et al., 2015]. A treelike hybrid 5-cluster tool with C₂ be a fork tool, and its adjacent downstream tools are C₃ and C₅. The tool C₄ is the downstream tool of C₃, and C₂ is the downstream tool of C₁. Furthermore, C₁ is a dual-arm tool and the others are single-arm tools. Their activity time is as follows: for C₁, one has (α₁₀, α₁₁, λ₁, μ₁)=(0, 61.5, 0, 28.5, 0.5); for C₂, one has (α₂₀, α₂₁, α₂₂, λ₂, μ₂)=(0, 0, 0, 10, 1); for C₃, one has (α₃₀, α₃₁, α₃₂, α₃₃, λ₃, μ₃)=(0, 56, 0, 58, 7, 1); for C₄, one has (α₄₀, α₄₁, α₄₂, α₄₃, λ₄, μ₄)=(0, 56, 66, 65, 5, 1); and for C₅, one has (α₅₀, α₅₁, α₅₂, λ₅, μ₅)=(0, 48, 50, 6, 1).

From [Yang, et al., 2015], the lower bound of cycle time of the system is Θ=Π=90 s. With Θ=Π=90 s, the robot waiting time is set as follows. For C₄, ω₄₀=11 s, ω₄₁=1 s, ω₄₂=2 s, and ω₄₃=28 s are set. For C₅, ω₅₀=15 s, ω₅₁=13 s, and ω₅₂=20 s are set. For C₃, ω₃₁=8 s, ω₃₀=3 s, ω₃₂=1 s, and ω₃₃=14 s are set. For C₂, ω₂₀=2 s, ω₂₁=0, and ω₂₂=22 s are set. Then, for C₁, one has Π−(4λ₂+3μ₂+ω₂₂)−λ₁=90−(43+22)−28.5=−3.5<0, or there is no OSLB. Therefore, one needs to find the minimal cycle time Θ by Algorithm 2.

With ω₂₂=22>0, ω₅₂=20>0, ω₃₃=14>0, and ω₄₃=28>0, one has Σ_(p∈S) ₂ B[p]=(B[2]+B[3]+B[4]+B[5])=(1+2+2+1)=6 and Φ₂(D,S)=(4λ₂+3μ₂+ω₂₂)+λ₁−Π=3.5 s. Then, Δ₂=Φ₂(D, S)/(Σ_(p∈S) ₂ B[p]+1)=3.5/7=0.5 s, Δ₃=ω₃₃/(B[3]+B[4])=14/3 s, Δ₄=ω₄₃/B[4]=28/2=14 s, Δ₅=ω₅₂/B[5]=20/1=20 s, Δ=min{Δ₂, Δ₃, Δ₄, Δ₅}=0.5 s, and Θ=Π+Δ=90.5 s. Let Δ_(ij)=ω_(ij), i∈

₅\{1} and j∈Ω_(i(n[i])), where ω_(ij)'s are obtained by the algorithm in [Yang, et al., 2015] with cycle time Θ=Π=90 s as given above. Then, by Algorithm 2, the robot waiting time is set as follows. For C₄, ω₄₀=A₄₀+Δ=11.5 s, ω₄₁=A₄₁+Δ=1.5 s, ω₄₂=A₄₂+Δ−2.5 s, and ω₄₃=A₄₃−2Δ−27 s; for C₃, ω₃₁=A₃₁+2Δ+Δ=9.5 s, ω₃₀=A₃₀+Δ=3.5 s, ω₃₂=A₃₂+Δ=1.5 s, and ω₃₃=A₃₃−2Δ−2Δ=12 s; for C₅, ω₅₀=A₅₀+Δ−15.5 s, ω₅₁=A₅₁+Δ=13.5 s, and ω₅₂=A₅₂−Δ=19.5 s; for C₂, ω₂₀=A₂₀+4Δ+Δ=4.5 s, ω₂₁=A₂₁+Δ+Δ=1 s, and ω₂₂=A₂₂−4Δ−Δ−Δ=19 s; and for C₁, ω₁₀=Θ−ψ₁₁=3.5 s and ω₁₁=ω₁₂=0. In this way, an optimal one-wafer cyclic schedule is obtained and its Gantt chart is shown in FIG. 7.

E. The Present Invention

The present invention is developed based on the theoretical development in Sections A-C above.

An aspect of the present invention is to provide a computer-implemented method for scheduling a treelike hybrid K-cluster tool to generate a one-wafer cyclic schedule. The K-cluster tool has K single-cluster tools.

The method comprises given a value of cycle time, generating a part of the schedule for a section of the K-cluster tool by performing a generating algorithm. The section of the K-cluster tool is either an EST or a ST. The generating algorithm is based on Algorithm 1 above. In particular, the generating algorithm for EST_(k) or ST_(k), with C_(i) being a downstream adjacent tool of C_(k) and with Θ being the given value of cycle time for EST_(i), ST_(i) or B_(i) comprises Step 3 of Algorithm 1 under a condition that the checking result of Step 1 is negative. Preferably, the generating algorithm further comprises Step 2 and Step 4 of Algorithm 1, provided that the checking result of Step 1 is negative.

The method is further elaborated based on Algorithm 2 as follows. First identify ST_(j), with j=max_(l∈F){l}, and one or more ESTs of ST_(j) in the K-cluster tool. The one or more ESTs are denoted as EST_(j−1), EST_(j−2) down to EST_(i) such that an upstream adjacent tool of C_(i) is a fork tool. A first part of the schedule for ST_(j) is first determined by performing the generating algorithm. Then determine a second part of the schedule for EST_(j−1) based on the first part of the schedule. Determining one part of the schedule EST_(j−m) based on a determined part of the schedule for EST_(j−m+1) is repeated until the one or more ESTs are scheduled.

The embodiments disclosed herein may be implemented using general purpose or specialized computing devices, computer processors, or electronic circuitries including but not limited to digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA), and other programmable logic devices configured or programmed according to the teachings of the present disclosure. Computer instructions or software codes running in the general purpose or specialized computing devices, computer processors, or programmable logic devices can readily be prepared by practitioners skilled in the software or electronic art based on the teachings of the present disclosure.

In particular, the method disclosed herein can be implemented in a treelike hybrid K-cluster tool if the K-cluster tool includes one or more processors. The one or more processors are configured to execute a process of scheduling the K-cluster tool according to one of the embodiments of the disclosed method.

The present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The present embodiment is therefore to be considered in all respects as illustrative and not restrictive. The scope of the invention is indicated by the appended claims rather than by the foregoing description, and all changes that come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein. 

What is claimed is:
 1. A computer-implemented method for scheduling a treelike hybrid K-cluster tool with a plurality of branches, sub-trees (ST) and extended sub-trees (EST) to generate a one-wafer cyclic schedule, the treelike hybrid K-cluster tool having K single-cluster tools denoted as C₁, C₂, . . . , C_(K), with C₁ being a head tool of the treelike hybrid K-cluster tool, the single-cluster tool C_(k), k∈

_(K), having a robot R_(k) for wafer handling, Θ being the cycle time for all the branches as iteratively calculated with a maximum fundamental period Π being a given initial cycle time, where the one-wafer cyclic schedule of the treelike hybrid K-cluster tool cannot be found with the given initial cycle time, the method comprising: determining fundamental periods (FP) Π₁, Π₂, . . . , Π_(K) for the single-cluster tools C₁, C₂, . . . , C_(K) and applying a maximum fundamental period Π=max{Π₁, Π₂, . . . , Π_(K)} as the given initial cycle time Θ; determining a one-wafer cyclic schedule for each of the ST (ST_(i)) by increasing the cycle time Θ by Δ, wherein the ST comprises one or more branches; wherein the determining of one-wafer cyclic schedule for each of the ST comprises: determining the k such that C_(k) is an upstream adjacent tool of C_(j); determining a one-wafer cyclic schedule for each of the EST (EST_(j)) based on a generating algorithm by increasing the cycle time Θ by Δ if C_(k) is not a fork tool, wherein the EST comprises one or more ST and the generating algorithm further comprises: (S1.1) determining, responsive for finding that k∉F and A_(i(n[i]))≠0, a time increment Δm according to: Δ_(m) =A _(m(n[m]))/Σ_(p∈S) _(m) B[p] if m>i and $\Delta_{m} = {\Delta_{i} = \left\{ {{{\begin{matrix} {{\Phi_{i}\left( {S,S} \right)} - A_{i{({n{\lbrack i\rbrack}})}}} & {{{for}\mspace{14mu}{Condition}\mspace{14mu} 1},} \\ \frac{\Phi_{i}\left( {S,S} \right)}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}} & {{{for}\mspace{14mu}{Condition}\mspace{14mu} 2},} \\ \frac{\Phi_{i}\left( {D,S} \right)}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}} & {{{for}\mspace{14mu}{Condition}\mspace{14mu} 3},} \end{matrix}\mspace{14mu}{if}\mspace{14mu} m} = i},} \right.}$ (S1.2) computing, responsive for finding that Δ=min{Δ_(p)|p∈S_(i)}=Δ_(i), (S1.2.1) in EST_(i) or B_(i), for p∉S_(i):  responsive for finding that p∉L, ω_(p((b[p]) _(_) ¹⁾⁻¹⁾=A_(p((b[p]) _(_) ¹⁾⁻¹⁾+Δ;  responsive for finding that p∈L, ω_(p0)=A_(p0)+Δ; (S1.2.2) in EST_(i) or B_(i), responsive for finding that p∈S_(i) and p∉F:  further responsive for finding that p∈L, ω_(pj)=A_(pj)+Y for j∈D[p], or for j∈

_(n[p])\{n[p]};  further responsive for finding that p∈L, ω_(p((b[p]) _(_) ¹⁾⁻¹=A_(p((b[p]) _(_) ¹⁾⁻¹+Σ_(q∈S) _(p) _(\{p})B[q]×A_(i(n[i]))/(Σ_(p∈S) _(i) B[p])+Δ, or ω_(p0)=A_(p0)+Δ; and ω_(p(n[p]))=A_(p(n[p]))−Σ_(q∈S) _(p) B[q]×Y; (S1.2.3) in EST_(i), responsive for finding that p∈S_(i) and p∈F: ω_(pj) = A_(pj) + Y, j ∈ D[p]; ${\omega_{p{({{({{b{\lbrack p\rbrack}}\;\_\; 1})} - 1})}} = {A_{p{({{({{b{\lbrack p\rbrack}}\;\_\; 1})} - 1})}} + {\sum\limits_{q \in S_{p\;\_\; 1}}{{B\lbrack q\rbrack} \times Y}} + \Delta}};$ ${\omega_{p{({{({{b{\lbrack p\rbrack}}\;\_\; d})} - 1})}} = {A_{p{({{({{b{\lbrack p\rbrack}}\;\_\; d})} - 1})}} + {\left( {{\sum\limits_{q \in S_{p\;\_\; d}}{B\lbrack q\rbrack}} + 1} \right) \times Y}}},{{d \in \left\{ {2,3,\ldots\mspace{14mu},{f\lbrack p\rbrack}} \right\}};{and}}$ ${\omega_{p{({n{\lbrack p\rbrack}})}} = {A_{p{({n{\lbrack p\rbrack}})}} - {\sum\limits_{q \in S_{p}}{{B\lbrack q\rbrack} \times Y}}}};$ (S1.3) responsive for finding that Δ=min{Δ_(p)|p∈S_(i)}=Δ_(f)≠Δ_(i), performing the Steps (S1.2.1), (S1.2.2) and (S1.2.3) with Y=Δ_(f), followed by repeating the Steps (S1.1), (S1.2) and (S1.3); and the generating algorithm is implemented by a wafer handling robot in a wafer processing device in a semiconductor manufacturing industry for determining the one-wafer cyclic schedule for each of the EST, an optimized schedule is obtained with an optimal cycle time Θ for the treelike hybrid K-cluster tool; where: Condition 1 is that $0 < A_{i{({n{\lbrack i\rbrack}})}} \leq \frac{\sum_{p \in S_{i}}{{B\lbrack p\rbrack} \times {\Phi_{i}\left( {S,S} \right)}}}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}}$  and an S-S case is considered, Condition 2 is that $A_{{({i + 1})}{({n{\lbrack{i + 1}\rbrack}})}} \geq \frac{\sum_{p \in S_{i}}{{B\lbrack p\rbrack} \times {\Phi_{i}\left( {S,S} \right)}}}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}}$  and the S-S case is considered, Condition 3 is that a D-S case is considered; Y=Φ_(i)(S,S)−A_((i(n[i])) when the Condition 1 is satisfied; $Y = \frac{\Phi_{i}\left( {S,S} \right)}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}}$  when the Condition 2 is satisfied; $Y = \frac{\Phi_{i}\left( {D,S} \right)}{1 + {\sum_{p \in S_{i}}{B\lbrack p\rbrack}}}$  when the Condition 3 is satisfied; L denotes an index set of leaf tools in the treelike hybrid K-cluster tool; F denotes an index set of fork tools in the treelike hybrid K-cluster tool; ST_(j) denotes a ST with C_(j) being a fork tool and a root node of the ST, and EST_(i) is an EST of ST_(j) with none of C_(i), C_(i+1), . . . , C_(j−2), C_(j−1) being a fork tool; B_(i), starting from C_(i) and ends at C_(m), m∈L, denotes a linear multi-cluster tool in the treelike K-cluster tool; ω_(ij) is a robot waiting time of R_(i) at Step j as obtained after the cycle time is increased by Δ, j∈Ω_(n[i]), n[i] being an index of a last processing step of C_(i); A_(kj) is a robot waiting time at Step j for R_(k) as determined for the cycle time Θ; S_(i) is a set of single-cluster tools connected to C_(i) and selected from the K single-cluster tools; B[k]=n[k]−1; b[p]_d is an index denoting a d-th outgoing module of C_(p); D[p] be a set of processing steps in C_(p); f[i], 1≤f[i]≤n[i], denotes the number of outgoing modules in C_(i), i∉L; Φ_(i+1)(S,S)=4λ_(i+1)+3μ_(i+1)+A_((i+1)(n[i+1]))−Θ+4λ_(i)+3μ_(i) when C_(i) and C_(i+1) are S-S, and Φ_(i+1)(D, S)=4λ_(i+1)+3μ_(i+1)+A_((i+1)(n[i+1]))−Θ+λ_(i), when C_(i) and C_(i+1) are D-S; λ_(i) is a time taken by R_(i) to load or unload a wafer in C_(i); μ_(i) is a time taken by R_(i) to move between process modules of C_(i) for transiting from one processing step to another;

_(L)={1, 2, . . . , L} for a positive integer L; and Ω_(L)=N_(L)∪{0}.
 2. The method of claim 1, wherein the generating algorithm further comprises the steps of: (S2) responsive for finding the optimal cycle time for EST_(k) or ST_(k), k∉F and A_(i(n[i]))=0, where the one-wafer cyclic schedule cannot be found with the given initial cycle time, performing: updating Θ with a value computed by Θ+Δ_(i)=Θ+Φ_(i)(S, S) for S-S case, or Θ+Δ_(i)=Θ+Φ_(i)(D, S) for D-S case; and based on the updated value of Θ, recomputing the robot waiting times for the robots in EST_(k) or ST_(k), so that the part of the schedule for EST_(k) or ST_(k) is generated and thereby the performing of the generating algorithm is completed; (S3) responsive for finding the optimal cycle time for EST_(k) or ST_(k), and k∈F, where the one-wafer cyclic schedule cannot be found with the given initial cycle time, performing Steps (S3.1), (S3.2) and (S3.3); (S3.1) finding the optimal cycle time Θ+Δ_(q) for C_(k) with EST_(k) _(_) _(q) or ST_(k) _(_) _(q), q∈

_(f[k]), by performing the Steps (S.1) and (S.2); (S3.2) updating Θ with a value computed by Θ+max{Δ₁, Δ₂, . . . , Δ_(f[k])}; and (S3.3) finding the part of the schedule for ST_(k) by recomputing the robot waiting times with the updated cycle time Θ; where: EST_(k) _(_) _(q) or ST_(k) _(_) _(q) is the EST or the ST having the single-cluster tool C_(i) and a branch thereof, B_(i) _(_) _(q).
 3. The method of claim 2, further comprising: identifying, in the treelike hybrid K-cluster tool, ST_(j) with j=max_(l∈F){l}, and one or more ESTs of ST_(j), the one or more ESTs being denoted as EST_(j−1), EST_(j−2) down to EST_(i) such that an upstream adjacent tool of C_(i) is a fork tool; determining a first part of the schedule for ST_(j) by performing the generating algorithm; determining a second part of the schedule for EST_(j−1) based on the first part of the schedule; and repeating determining one part of the schedule EST_(j−m) based on a determined part of the schedule for EST_(j−m+1) until the one or more ESTs are scheduled.
 4. The method of claim 2, wherein R_(k) is single-arm or double-arm.
 5. The method of claim 1, further comprising: identifying, in the treelike hybrid K-cluster tool, ST_(j) with j=max_(l∈F){l}, and one or more ESTs of ST_(j), the one or more ESTs being denoted as EST_(j−1), EST_(j−2) down to EST_(i) such that an upstream adjacent tool of C_(i) is a fork tool; determining a first part of the schedule for ST_(j) by performing the generating algorithm; determining a second part of the schedule for EST_(j−1) based on the first part of the schedule; repeating determining one part of the schedule EST_(j−m) based on a determined part of the schedule for EST_(j−m+1) until the one or more ESTs are scheduled.
 6. The method of claim 1, wherein R_(k) is single-arm or double-arm.
 7. The method of claim 1, wherein the one-wafer cyclic schedule cannot achieve a lower bound of cycle time. 